我试图在Ruby中找到x的最大素数因子,而不使用require 'prime'
。
这是代码
x=13195; n=2; max=n;
for n in (2...x)
if (x%n==0)
prime=true
for y in (1...n)
if n%y==0
prime=false
end
end
if prime
max=n
end
end
end
puts max
我知道代码是循环扩展的。它不是“类似Ruby”。我只需要理解代码中的逻辑错误。
答案 0 :(得分:1)
require 'rubygems'
require 'prime'
x = 13195
#Solution suggested by steenslag
max = x.prime_divison.last.first
puts max # => 29
答案 1 :(得分:1)
x是一个数组
x=13195, n=2, max=n # => x == [13195, 2, 2]
你需要
x=13195; n=2; max=n;
因此,(2...[13195, 2, 2])
显然是无效的Range