如何计算- FMDB
- chibi-ORM
- sqlitepersistentobjects
并保存到文本文件?
第一个问题:我尝试打印时出现内存错误。如何确定需要多少内存?
第二个问题:如何在最快的时间内计算出来?
答案 0 :(得分:5)
这个计算对我来说非常快,不会给出内存错误并且确切地说:
>>> x = 2**74207281 - 1
自:
>>> x > 2**74207281
False
>>> x > 2**74207281 - 2
True
只是不要尝试打印出来,这需要很长时间。尝试打印小数字以了解多长时间......
哦,你想打印出来......
gmpy
包对其数字有一个更快的字符串化算法:
>>> x = 2**74207281 - 1
>>> import gmpy
>>> xx = gmpy.mpz(x)
>>> s = str(xx) # takes a few seconds.
>>> len(s)
22338618
>>> f = file("/tmp/bigprime.txt","w")
>>> f.write(s)
>>> f.close()
生成的文件有2200万个数字:
$ wc -c /tmp/bigprime.txt
22338618 /tmp/bigprime.txt
答案 1 :(得分:2)
函数pow()
将通过平方使用取幂,几乎是即时的:
>>> import math
>>> p = pow(2, 74207281) - 1
>>> math.log10(p)
22338617.477665834
因此它有22338618位数。