我正在回答以下问题:
问题3:写一个方法,is_prime ?,取一个数字并返回 如果是素数则为真,否则为假。
您可能希望使用模运算:5%2返回余数 当将5除以2时:1。如果num可被i整除,则num%i == 0。 (你不会期望已经知道模数的模数 挑战)
但我没有得到回复。我最后的“看跌期权”似乎没有起作用。这是我的代码:
# Q3 method is_prime?
def is_prime? (num)
i = 2
while i <= num
is_divisble = ((num%i) == 0)
if is_divisble
return false
end
i+=1
end
# is not divisible
return true
end
puts 'select a number greater than one and see if it\'s prime'
num = gets.chomp.to_i
puts is_prime?(num)
答案 0 :(得分:1)
代码打印正常。但是,它始终打印true
。补救措施:更改while i <= num
到while i < num
。
答案 1 :(得分:0)
i <= num
这是你的错误:)。 你的代码会递增i直到i == num所以num%i在结尾处总是为真。
只需用
替换它i < num