2009-01-14練習:たのしいRuby P.172 - 173
練習問題 (3)
数値 num が素数であるかを調べるメソッド prime?(num) を定義しましょう。
書いたもの
def prime?(num) # 小数は素数ではない if num.is_a?(Float) return false end # 2 より小さい整数は素数ではない if num < 2 return false end # 1 とその数自身以外の約数を持つ 2 以上の整数は素数ではない(合成数) (2..Math::sqrt(num)).each {|i| if num % i == 0 return false end } # 2 以上の自然数で、かつ 合成数でないなら、素数 return true end p prime?(2.1) p prime?(1) p prime?(2) p prime?(997) p prime?(9971) p prime?(9973)
実行結果
false false true true false true
単に「数値」と言われたとき、自分が入れそうなもの = 小数と整数 について判定できるようにしてみた。
コメントを書く