如何更准确地划分大数字

时间:2018-05-20 14:16:16

标签: python primes division

我正在创建一个程序来检查数字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)

数字总是应该除以任何小数位,所以我可以使结果更准确吗?

1 个答案:

答案 0 :(得分:1)

运算符/调用浮点除法,这会导致操作数被划分为浮点数。 18位数处于浮点精度的极限。对于整数除法,请改为使用//