Ruby不放

时间:2013-12-05 20:21:00

标签: ruby

我正在回答以下问题:

  

问题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)

2 个答案:

答案 0 :(得分:1)

代码打印正常。但是,它始终打印true。补救措施:更改while i <= numwhile i < num

答案 1 :(得分:0)

i <= num

这是你的错误:)。 你的代码会递增i直到i == num所以num%i在结尾处总是为真。

只需用

替换它
i < num