gpt4 book ai didi

ruby - 奇数顺序排列

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:58:42 25 4
gpt4 key购买 nike

我写这个是为了求一个数 num 的质因数分解。它给出了正确的答案(例如,num 72 为 2, 3, 2, 3, 2),但它以奇怪的顺序出现。我不知道为什么。我想知道是否有人看到了我没有看到的东西。

$primes = [2]
$factors = []
num = 72
max = num

def isprime(n)
$primes.each do |x|
if n % x == 0 then
return
end
end
$primes.push(n)
return
end

i = 3
while i <= max
isprime(i)
i += 1
end

while !($primes.include?(num))
$primes.each do |x|
if num % x == 0 then
$factors.push(x)
num /= x
end
end
end
$factors.push(num)

puts $factors

最佳答案

您需要在找到一个因子后立即中断 $primes.each 循环,否则它每次都会完成循环。

while !($primes.include?(num))
$primes.each do |x|
if num % x == 0 then
$factors.push(x)
num /= x
break
end
end
end
$factors.push(num)

P.S:我只关注算法方面而忽略了 Ruby 方面。

关于ruby - 奇数顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27872712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com