2013-10-08 156 views
0

我試圖查看用戶是否輸入質數。我希望它打印的「黃金」或「不是素數」到屏幕:紅寶石將不會打印輸出

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

你的gets.chomp(prime).to_i沒有做任何重要的事情。我不明白chomp這裏的目的,它不分配任何變量。如果您想接收輸入號碼爲prime,則需要執行prime = gets.to_i

一旦你這樣做了,你不需要再像for divide_by in 2..(prime.to_i - 1)那樣再做to_i

此外,你的邏輯是有缺陷的。如果prime不能被2整除,是否足以說明"PRIME!!"?我不這麼認爲。

如果你想知道使用什麼類型的循環,該循環for很少有用。您應該使用each

+0

是的,但我怎麼做,然後用數字的東西嗎?我是否把它放在同一個循環中? –

+0

把什麼放在同一個循環中? – sawa

+0

「如果黃金不能被2整除,這就夠了說‘PRIME!’?」 我知道。我試圖通過1和總理之間的任意數字說,這還不包括1 我會嘗試用每一個循環做到這一點。 –