我正在尝试用 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位时,代码无法正常运行,停止响应。
显然在我的代码中的某个地方有一个我无法弄清楚的无限循环。
如果有人可以帮助我解决这个问题,我将不胜感激。