0

我正在尝试用 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位时,代码无法正常运行,停止响应。

显然在我的代码中的某个地方有一个我无法弄清楚的无限循环。

如果有人可以帮助我解决这个问题,我将不胜感激。

4

0 回答 0