小编Nor*_*ang的帖子

为什么我的红宝石编码找不到素数?

我想知道为什么我的代码不起作用.我是代码世界的新手,所以如果有人能为我解决这个问题,那么最好如何解决它,谢谢!

我正在尝试创建一个程序,它将从我指定的数字列表中指示素数.

请告诉我为什么这两个代码不起作用!我很困惑第二个代码试图做什么,因为我发现它是别人对我的问题的解决方案.我是编码的新手,但我喜欢它,所以请耐心等待!

这是我的简单代码:

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美分我会很感激!哦,最后我如何正确地在问题板上发布代码?没有导师,我是如此新鲜,如此困惑!

ruby algorithm primes

3
推荐指数
1
解决办法
2113
查看次数

标签 统计

algorithm ×1

primes ×1

ruby ×1