如何更准确地划分大数

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 位是浮点精度的极限。对于整数除法,请改用 //