擅长:python、mysql、java
<p>问题不在于计算,也不在于写入文件:大量的时间都是通过将结果从内部二进制表示转换为以10为基数表示的过程中消耗的。这需要的时间是比特数的二次方,这里有很多比特。在</p>
<p>如果将输出行替换为:</p>
<pre><code>outputFile.writelines(hex(x))
</code></pre>
<p>你会发现它跑得更快。转换为十六进制表示只需要在位数上呈线性的时间。在</p>
<p>如果您真的需要以10为基数输出巨型整数,可以考虑使用<code>decimal</code>模块。它在一个与基数10相关的表示中进行内部计算,然后转换为十进制字符串所需的时间与十进制位数呈线性关系。不过,您需要事先将decimal上下文的精度设置为“足够大”的值,以避免在舍入时丢失低位数字。在</p>