我遇到了Coderbyte的Prime Time问题。链接是: http://www.coderbyte.com/CodingArea/GuestEditor.php?ct=Prime%20Time&lan=Ruby
def PrimeTime(num)
for i in 1..num
if (num % i) == 0
return false
else
return true
end
end
end
当我通过repl.it运行时,我没有错误,但是当我尝试传递一个整数时,我收到以下错误:
(eval):11:(eval):11:编译错误(SyntaxError) (eval):11:语法错误,意外的tINTEGER,期待')' def PrimeTime(10)
有谁知道为什么?
谢谢!
答案 0 :(得分:1)
def is_prime?(number)
is_prime = true
(2..number/2).each do |i|
if (number % i == 0)
is_prime = false
break
end
end
return is_prime == true && number > 1 ? true : false
end
使用以下示例循环验证上述功能是否按预期工作:
(1..20).each do |number|
result = is_prime?(number)
puts "#{number} ---- -- -> #{result}"
end
答案 1 :(得分:0)
基于该错误消息,我猜你试图像这样调用这个方法吗?
def PrimeTime(10)
?如果是这样,那不是你如何称呼方法。试试这个:
PrimeTime(10)
答案 2 :(得分:0)
这是一种丑陋的方式。任何人都知道如何清理它以适应1被传递?
def PrimeTime(num)
if num == 1
return true
end
for i in 2...num
if (num % i) == 0
return false
else
return true
end
end
end