[ruby-list:46531] Re: 出力に関する質問

From: askar <askar75@...>
Date: 2009-11-09 15:14:46 UTC
List: ruby-list #46531
エラーにはString型のデータを2との比較に失敗したと書いてありますが、
コマンドラインでruby dice.rb 50と実行しています。
50はStringとして入力されてしまっているということですね。

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