leejiafu 发布于 2023-5-4 19:08 108 0
分类专栏:海洋杂谈 原作者: 佚名
| Python使用筛选法求解小于n的所有素数的方法如下: 1. 首先创建一个长度为n的布尔数组,初始化为True,表示所有数都是素数。 2. 从2开始遍历数组,如果当前数是素数,则将它的倍数标记为非素数,即将对应位置的布尔值设为False。 3. 遍历完数组后,所有布尔值为True的位置所对应的数就是小于n的所有素数。 下面是Python代码实现: def sieve_of_eratosthenes(n): is_prime = [True] * n is_prime[] = is_prime[1] = False for i in range(2, int(n ** .5) + 1): if is_prime[i]: for j in range(i * i, n, i): is_prime[j] = False return [i for i in range(n) if is_prime[i]] # 示例 print(sieve_of_eratosthenes(20)) # 输出 [2, 3, 5, 7, 11, 13, 17, 19] |