我想知道为什么我的代码不起作用.我是代码世界的新手,所以如果有人能为我解决这个问题,那么最好如何解决它,谢谢!
我正在尝试创建一个程序,它将从我指定的数字列表中指示素数.
请告诉我为什么这两个代码不起作用!我很困惑第二个代码试图做什么,因为我发现它是别人对我的问题的解决方案.我是编码的新手,但我喜欢它,所以请耐心等待!
这是我的简单代码:
def is_prime?(*nums)
i = 2
nums.each do |num|
while i < num
if num % i == 0
puts "#{num} is not a prime"
else
puts "#{num} is a prime"
end
i += 1
end
end
end
Run Code Online (Sandbox Code Playgroud)
....为什么这不起作用?我怎样才能让它发挥作用?它一直给我一个奇怪的答案,因为它卡在我的第一个数字上并且似乎没有处理我插入的下一个数字:
puts is_prime?(21, 23, 17)
Run Code Online (Sandbox Code Playgroud)
这是我无法正确运行的第二个代码.有人可以打破这里发生的事情吗?我怎样才能让它发挥作用?
def is_prime?(*nums)
nums.each_with_object({}) do |num, hsh|
hsh[num] = num > 1 && 2.upto(num - 1).none? {|i| num % i == 0}
end
end
puts is_prime?(27, 13, 42)
Run Code Online (Sandbox Code Playgroud)
无论如何,我知道这个问题有点令人困惑,但如果有人关心输入他们的2美分我会很感激!哦,最后我如何正确地在问题板上发布代码?没有导师,我是如此新鲜,如此困惑!