埃拉托斯特尼筛法的 Python 程序

pythonserver side programmingprogramming

在本文中,我们将了解下面给出的问题陈述的解决方案。

问题陈述 − 给定一个数字 n,我们需要打印所有小于或等于 n 的素数。限制:n 是一个小数。

现在让我们观察下面实现中的解决方案 −

示例

def SieveOfEratosthenes(n):
   # 布尔类型数组,其中包含 True 值
   prime = [True for i in range(n + 1)]
   p = 2
   while (p * p <= n):
      # 如果保持不变则为素数
      if (prime[p] == True):
         # 更新所有倍数
         for i in range(p * 2, n + 1, p):
            prime[i] = False
      p += 1
   prime[0]= False
   prime[1]= False
   # Print
   for p in range(n + 1):
      if prime[p]:
         print (p,end=" ")
# main
if __name__=='__main__':
   n = 33
   print ("The prime numbers smaller than or equal to", n,"is")
   SieveOfEratosthenes(n)

输出

The prime numbers smaller than or equal to 33 is
2 3 5 7 11 13 17 19 23 29 31

所有变量均在本地范围内声明,其引用如上图所示。

结论

在本文中,我们了解了如何为埃拉托斯特尼筛法编写 Python 程序


相关文章