use*_*265 0 python largenumber
如何计算并保存2^74,207,281 ? 1到文本文件?
第一个问题:我尝试打印时出现内存错误.如何确定需要多少内存?
第二个问题:如何在最快的时间内计算出来?
这个计算对我来说非常快,不会给出内存错误,确切地说:
>>> x = 2**74207281 - 1
Run Code Online (Sandbox Code Playgroud)
以来:
>>> x > 2**74207281
False
>>> x > 2**74207281 - 2
True
Run Code Online (Sandbox Code Playgroud)
只是不要尝试将其打印出来,这需要很长时间.尝试打印小数字以了解多长时间...
哦,你要把它打印出来......
该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()
Run Code Online (Sandbox Code Playgroud)
生成的文件有2200万个数字:
$ wc -c /tmp/bigprime.txt
22338618 /tmp/bigprime.txt
Run Code Online (Sandbox Code Playgroud)