📜  Python 打印所有素数(1)

📅  最后修改于: 2023-12-03 14:46:15.283000             🧑  作者: Mango

Python 打印所有素数

简介

在计算机编程中,素数是指在大于1的自然数中,除了1和该数自身,无法被其他自然数整除的数。而Python是一种广泛使用的高级编程语言,有着易读、易写、强大的语言特性。本文将介绍如何在Python中打印出所有素数。

思路

要实现打印所有素数的功能,我们需要先了解如何判断一个数是否为素数。一种简单的方法就是对它进行一次从2到该数本身-1的循环,判断是否有其他整数可以整除它。若没有,则它就是素数。

那如何实现打印所有素数的功能呢?我们可以采用“埃拉托色尼筛法”,简称“素数筛”,它的基本思想是从2开始,将每个素数的倍数都标记成合数,以达到筛选素数的目的。我们可以通过生成器来实现该算法。

代码实现

下面是完整的Python代码实现,欢迎参考。

def primes():
    """
    生成器函数,用于打印所有素数
    """
    yield 2
    # 记录已知的素数
    primes = [2]
    # 从3开始,每次加2(排除偶数,加快计算速度)
    num = 3
    while True:
        # 判断当前数是否为素数
        for p in primes:
            if num % p == 0:
                break
        else:
            # 若为素数,则打印并记录
            yield num
            primes.append(num)
        num += 2

# 打印前100个素数
for i, prime in enumerate(primes()):
    if i >= 100:
        break
    print(prime)
结语

通过以上代码,我们可以实现打印所有素数的功能。本文介绍了一种比较传统的算法,实现起来简单而直观。当然,对于大规模计算或需要高效性能的场景,还需要考虑其他算法或优化策略。