📜  打印所有小于或等于 N 的素数(1)

📅  最后修改于: 2023-12-03 15:10:02.166000             🧑  作者: Mango

在 Python 中打印所有小于或等于 N 的素数

素数是指只能被 1 和自身整除的正整数。下面是一个 Python 代码片段,可以打印所有小于或等于 N 的素数。

代码实现
def print_primes(N):
    """
    打印所有小于或等于 N 的素数。
    """
    primes = []
    for num in range(2, N+1):
        for i in range(2, num):
            if (num % i) == 0:
                break
        else:
            primes.append(num)
    
    # 打印所有素数
    for prime in primes:
        print(prime)
解释说明

这个代码片段包含一个函数 print_primes(N),它的参数 N 是我们要找的最大素数。函数内部使用了两个 for 循环来查找素数。

首先,我们定义了一个空列表 primes,用于保存找到的素数。然后,一个外部循环从 2 开始,一直迭代到 N。这是因为 1 不是素数。

内部的 for 循环检查从 2 到当前数字 (num) 的所有数字。如果当前数字在这个范围内有其他因子,那么我们可以肯定当前数字是不是素数。在这种情况下,我们退出内部循环并继续外部循环。

否则,在内部循环结束时,我们得到一个当前数字 (num) 是素数的证据。我们将其添加到 primes 列表中。

最后,我们打印出所有的素数。

使用示例

我们来看一个使用示例:

>>> print_primes(10)
2
3
5
7

这将打印出 10 以内的所有素数:2、3、5 和 7。

结论

这个代码片段演示了如何在 Python 中查找素数。虽然此代码片段对于小的 N 值(小于 10,000)可以很快运行,但对于较大的 N 值(例如,1,000,000),计算时间将非常长。因此,在生产中你需要思考更好的算法。