[ruby-list:46529] SOLVED  Re: [ruby-list:46528] 出力に関する質問

From: askar <askar75@...>
Date: 2009-11-09 14:57:10 UTC
List: ruby-list #46529
自己レスです。

ARGVで受け取るスージはStringタイプだと分かりました。
14行目のコードを
num = ARGV[0].to_i
と変えたら、ちゃんと出力されました。

askar wrote:
> お世話になっています、アスカルです。
> 投稿のタイトルは何にすればよいか分かりませんでした。
> 
> 使用環境:Mac OS X Leopard
> Rubyのバージョン 1.8.7
> 
> 「たのしいRuby」という本を読んでいますが、180ページに記載競れている素 
> 数を調べる課題でしが、回答はhttp://www.notwork.org/sbcr- 
> ruby/answer/#numericの3番の回答です。そちらのコピー&ペーストでコードを 
> 挿入し、結果を出力したのですが、エラーが起きています。
> 
> -------------------------------
> #! ruby -Ku
> # -*- coding: utf-8 -*-
> 
> def prime?(num)
>   return false if num < 2
>     2.upto(Math.sqrt(num)){|i|
>     if num % i == 0
>       return false
>     end
>   }
>   return true
> end
> 
> num = ARGV[0]
> 
> p prime?(num)
> 
> -------------------------------
> エラーメッセージ
> 
> askars-imac:ruby askar$ ruby dice.rb 50
> dice.rb:5:in `<': comparison of String with 2 failed (ArgumentError)
>     from dice.rb:5:in `prime?'
>     from dice.rb:16
> --------------------------------------
> 
> 出力したいのは入力の数字が素数である場合、true、逆の場合、falseです。
> 簡単な質問かもしれませんが、宜しくお願いします。
> 
> 

In This Thread