Python 重复且缺少前两个素数的错误

Python 重复且缺少前两个素数的错误,python,list,primes,Python,List,Primes,我的代码的目的是从确定结束值的参数创建素数列表。我的代码无法生成所需的结果。我相信这与我的嵌套for循环有关 def prime(num): primes = [2,3] for possible_prime in range(2,num+1): isPrime = True for number in range(2, int(possible_prime**0.5) +1): if possible_prime%number == 0:

我的代码的目的是从确定结束值的参数创建素数列表。我的代码无法生成所需的结果。我相信这与我的嵌套for循环有关

def prime(num):
  primes = [2,3]

  for possible_prime in range(2,num+1):
    isPrime = True
    for number in range(2, int(possible_prime**0.5) +1):
      if possible_prime%number == 0:
        isPrime = False
        break
      if isPrime:
        primes.append(possible_prime)

  return primes
结果:

prime(60)
[2, 3, 5, 7, 9, 11, 11, 13, 13, 15, 17, 17, 17, 19, 19, 19, 21, 23, 23, 23, 25, 25, 25, 27, 29, 29, 29, 29, 31, 31, 31, 31, 33, 35, 35, 35, 37, 37, 37, 37, 37, 39, 41, 41, 41, 41, 41, 43, 43, 43, 43, 43, 45, 47, 47, 47, 47, 47, 49, 49, 49, 49, 49, 51, 53, 53, 53, 53, 53, 53, 55, 55, 55, 57, 59, 59, 59, 59, 59, 59]

我收到了副本,我必须将2和3硬编码到列表中

您的缩进错误 应写为:

def prime(num):
素数=[]
对于范围(2,num+1)中可能的_素数:
isPrime=True
对于范围(2,int(可能的素数**0.5)+1)内的数字:
如果可能,_素数%number==0:
isPrime=False
打破
#注意这个缩进变化
如果是iPrime:
素数。追加(可能的素数)
返回素数

此处的缩进错误 应写为:

def prime(num):
素数=[]
对于范围(2,num+1)中可能的_素数:
isPrime=True
对于范围(2,int(可能的素数**0.5)+1)内的数字:
如果可能,_素数%number==0:
isPrime=False
打破
#注意这个缩进变化
如果是iPrime:
素数。追加(可能的素数)
返回素数

这对我很有用。只需适当缩进并添加一行即可删除重复项

def prime(num):
素数=[2,3]
对于范围(2,num+1)中可能的_素数:
isPrime=True
对于范围(2,int(可能的素数**0.5)+1)内的数字:
如果可能,_素数%number==0:
isPrime=False
打破
如果是iPrime:
如果可能_primenot in primes:#添加此行
素数。追加(可能的素数)
返回素数
打印(素数(60))
出[58]:[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59]


它对我有用。只需适当缩进并添加一行即可删除重复项

def prime(num):
素数=[2,3]
对于范围(2,num+1)中可能的_素数:
isPrime=True
对于范围(2,int(可能的素数**0.5)+1)内的数字:
如果可能,_素数%number==0:
isPrime=False
打破
如果是iPrime:
如果可能_primenot in primes:#添加此行
素数。追加(可能的素数)
返回素数
打印(素数(60))
出[58]:[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59]


@ingvar使用编辑回滚以还原原始帖子中的错误。@ingvar使用编辑回滚以还原原始帖子中的错误。