Python - 素数算法不适用于更高的数字

Python - prime number algorithm doesn't work with higher numbers

我是 python 的新人,我的简单程序有问题。

我发现了一些简单的算法,可以判断输入数字是否为素数。 Evrything 适用于输入数字 2 或 13。当我使用更大的数字时会出现问题(我只需要使用更大的数字)。

num = 3231817448941

if num > 1:  
   for i in range(2,num):  
       if (num % i) == 0:  
           print(num,"is not a prime number")  
           print(i,"times",num//i,"is",num)  
           break  
   else:  
    print(num, "is a prime number")
         
else:  
   print(num,"is not a prime number")

我输入的数字是 3231817448941。因为这个数字是质数,所以它应该打印:

Output should be:
3231817448941 is a prime number

但是运行这个程序后,我的控制台是空的,没有打印任何东西。 此外,当我使用长度相同但不是质数的相似数字时,它也有效。

正如我所说,我是 python 的新人,如果有任何建议,我将不胜感激。

一个改变可以加快进程很多

num = 3231817448941

if num > 1:       
   for i in range(2,int(num**0.5)+1):  # Dont have to check to n, just sqrt(n)
       if (num % i) == 0:  
           print(num,"is not a prime number")  
           print(i,"times",num//i,"is",num)  
           break  
   else:  
    print(num, "is a prime number")
         
else:  
   print(num,"is not a prime number")

您可以找到更多优化here