Jor*_*eno 3 ruby primes irb computation
我在Project Euler上遇到了一些问题.其中一个问题:
13195的主要因素是5,7,13和29. 600851475143中最大的素数是多少?
我写了一些代码......它有效:
class Integer
def primeFactors
load('/home/arseno/ruby/lib/prime.rb')
a = []
for i in (1..self)
div = self.to_f/i.to_f
if((div==div.to_i)&&(Prime.prime?(i)))
a << i
end
end
a
end
end
puts 13195.primeFactors
Run Code Online (Sandbox Code Playgroud)
输出:
5
7
13
29
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好!现在,当我输入600851475143时,我的终端挂断了(理所当然,它计算了很多东西!)所以我试图做的是把一个puts i放在循环/ if中,这样我就可以捕获输出了实时迭代...
但是通过将其puts i放入循环中,Ruby不会在整个迭代中输出变量; 相反,它保留在某种缓冲区中的值,并在计算完成时将它们冲出.
这个特殊问题永远需要Ruby来计算(它已经运行了10分钟),我怀疑它是在浮点转换中.
为什么Ruby(我的终端?)保持值直到计算结束?相反,我可以实时看到这些值吗?你有更好的方法吗?
| 归档时间: |
|
| 查看次数: |
1411 次 |
| 最近记录: |