Ruby 素数であるかを判定する
Rubyで、素数であるかを判定するソースコードを記述してます。基本的に「2」から順番に割っていき、割り切れたら素数以外で、割り切れなかったときは素数となるので、これを関数化して使用します。
環境
- OS windows11 home
- ruby 3.1.3p185
素数であるかを判定
素数であるかを判定するには、
1. まず「1」は素数でないで「false」を返す
2. 「2」であれば偶数なので「true」を返す
3. 後は「2」から順番に割り算して余りがなければ割り切れるので割り切れたら「false」を返す
4. 最後まで割り切れなかった場合は「true」を返す
ことで可能です。
実際に、判定してみます。
def isPrime(num)
if num == 1
return false
elsif num == 2
return true
else
for i in 2..num
if num % i == 0
return false
end
if i + 1 == num
return true
end
end
end
end
p isPrime(997) # true
p isPrime(998) # false
p isPrime(999) # false
判定されていることが確認できます。
ライブラリ「prime」を使用
ライブラリ「prime」を使用して判定することも可能です。
gem install prime
判定してみます。
require "prime"
puts Prime.prime?(997) # true
puts Prime.prime?(998) # false
puts Prime.prime?(999) # false
また、ライブラリ「prime」は以下のように指定した範囲に存在する素数を出力することもできます。
require "prime"
Prime.each(10).each { |prime|
p prime
}
# 2
# 3
# 5
# 7
-
前の記事
javascript 現在のタブが切り替わったかを判定する 2022.12.23
-
次の記事
Ruby 立方根を求める 2022.12.23
コメントを書く