我试图在python3中写一个数字是否是素数。
我被要求仅使用以下方法:
"将输入除以小于其平方根的所有正素数。"
例如,如果给定的数字是33,那么我必须将33除以[2,3,5](小于5.xx,33的平方根)
同时,在找到[2,3,5]的过程中,我不能使用除要求之外的任何方法。
所以我的代码如下:
def is_prime(num):
import math
a=math.sqrt(num)
llist=[2,3]
pri=0
for i in range(2,int(a)+1):
root=math.sqrt(i)
for m in llist:
if m<root:
left=i%m
if left!=0:
llist.append(i)
if num in llist:
return True
for m in llist:
if num%m==0:
return False
if num%m!=0:
pri=pri+1
if pri==len(llist):
return True
当输入的数字超过7位时,代码无法正常运行,它只是停止响应。
显然在我的代码中某处有一个我无法弄清楚的无限循环。
如果有人可以帮我解决这个问题,我将非常感激。