Ruby循环程序给出了错误

时间:2016-08-07 11:22:46

标签: ruby

这是我写的是为了检查数字是否为素数

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

这会出错,我该如何解决?

cmd提示符的输出:

1 个答案:

答案 0 :(得分:0)

一些问题:

    Ruby中不存在
  • ++运算符,您可以使用+= 1代替
  • 您的num是一个字符串,您可以使用to_i方法将其设为数字​​,例如num.to_i
  • 如果你的号码提醒除以先例号码为零,你应该设置为假,不是真的
  • 如果从1开始,您的号码将始终为素数

无论如何,在更惯用的Ruby中,您可以编写类似

的代码
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