我正在尝试查看用户是否输入了素数。我希望它能在屏幕上打印“PRIME”或“NOT PRIME”:
prime = ""
puts "TYPE IN A NUMBER TO SEE IF IT'S PRIME: "
gets.chomp(prime).to_i
for divide_by in 2..(prime.to_i - 1)
if prime % divide_by == 0
puts "NOT PRIME!!!"
else
puts "PRIME!!!"
end
end
我应该使用while
循环吗?
答案 0 :(得分:0)
您的gets.chomp(prime).to_i
没有做任何重大事情。我不明白chomp
这里的目的,也没有分配任何变量。如果您希望将输入号码设为prime
,则需要执行prime = gets.to_i
。
完成此操作后,您无需像to_i
那样再次for divide_by in 2..(prime.to_i - 1)
。
此外,你的逻辑是有缺陷的。如果prime
不能被2
整除,那就足以说"PRIME!!"
了吗?我不这么认为。
如果您想知道要使用什么类型的循环,for
循环很少有用。您应该使用each
。