0

我正在尝试查看用户是否输入了质数。我希望它在屏幕上打印“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循环吗?

4

1 回答 1

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.

于 2013-10-08T23:21:58.667 回答