如何更准确地划分大数
How to divide big numbers more accurately
我正在创建一个程序来检查数字 numb
是否为素数,如果不是,则将数字因式分解为素数并打印出因式,但问题因大数而失败。
for n in primes:
if numb % n == 0:
a = 0
while numb % n == 0:
a += 1
factors[n] = a
prime = False
numb = numb / n
当 numb
很大(18 位长)时,程序在 numb = numb / n
处失败并且无法正确除法 (例如 231351651321912318 / 2 = 1.1567582566095616e+ 17)
数字总是应该不带任何小数位,所以我可以使结果更准确吗?
运算符 /
调用浮点除法,这会导致您的操作数被除以浮点数。 18 位是浮点精度的极限。对于整数除法,请改用 //
。
我正在创建一个程序来检查数字 numb
是否为素数,如果不是,则将数字因式分解为素数并打印出因式,但问题因大数而失败。
for n in primes:
if numb % n == 0:
a = 0
while numb % n == 0:
a += 1
factors[n] = a
prime = False
numb = numb / n
当 numb
很大(18 位长)时,程序在 numb = numb / n
处失败并且无法正确除法 (例如 231351651321912318 / 2 = 1.1567582566095616e+ 17)
数字总是应该不带任何小数位,所以我可以使结果更准确吗?
运算符 /
调用浮点除法,这会导致您的操作数被除以浮点数。 18 位是浮点精度的极限。对于整数除法,请改用 //
。