Python 如何更准确地划分大数字

Python 如何更准确地划分大数字,python,primes,division,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是大的1

我正在创建一个程序,检查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处失败,并且不能正确划分,例如23135165132291318/2=1.15675582566095616e+17

数字总是应该不带任何小数位数地进行除法,这样才能使结果更准确?

运算符/调用浮点除法,从而使操作数被除法为浮点数。18位处于浮点精度的极限。对于整数除法,请使用//。

您可以使用numb//n,因为您已经知道numb%n==0BTW,因子[n]=a和prime=False不需要在while循环中。