2016-08-07 8 views
-3

Hier ist, was ich, wenn eine Zahl prim ist oder nichtRuby-Looping-Programm gibt Fehler

print "Enter number : " 
num = gets.chomp 
i = 1 
boo = true 
while (i<num) 
    if (i%num==0) 
     boo=true 
    end 
    i++ 
end 

if (boo==true) 
    puts (num+"is a prime number") 
else 
    puts (num+"is not a prime number") 
end 

Dies gibt einen Fehler überprüfen geschrieben, wie kann ich es beheben?

Die Ausgabe von Befehlszeile aus:

+2

können Sie bitte den Text und nicht das Bild posten? es ist einfacher, es so zu lesen. – elyashiv

Antwort

0

Einige Probleme:

  • ++ Operator in Ruby nicht vorhanden ist, Sie += 1 statt
  • Ihre num ist eine Zeichenfolge verwenden können, können Sie eine Nummer mit to_i Methode, wie num.to_i
  • machen
  • , wenn die Erinnerung an Ihre Zahl um einen Präzedenzfall Zahl geteilt Null ist, sollten Sie auf false gesetzt, nicht wahr
  • , wenn Sie auf 1 Ihre Zahl führt immer prime

Wie dem auch sei, in einem mehr idiomatische Ruby-Start Sie können diesen Code etwas schreiben wie

print "Enter number : " 
num = gets.chomp.to_i 
prime = (2..num - 1).all? { |i| num % i != 0 } 
if prime 
    puts "#{num} is prime" 
else 
    puts "#{num} is not prime" 
end 
+0

Oder Sie könnten ein bisschen schummeln und tun: 'erfordern 'prime'; 13.prime? # => true' –

+0

Sicher, aber ich nehme an, er will lernen: D – Ursus

+0

Vielen Dank! Und ja, ich möchte so viele Sprachen wie möglich lernen! : D :) – Mandamus