要编写一个程序来选出质数,你可以使用以下几种方法:
基本判断法
遍历从2到N-1的所有数,判断N是否能被这些数整除。如果不能被整除,则N是质数。
优化方法:排除偶数(除了2),只遍历奇数,以及只判断到N的平方根。
埃氏筛法
初始化一个长度为N+1的数组,表示从2到N的所有数,初始都标记为质数。
从2开始遍历数组,若当前数字未被标记为非质数,则将其所有倍数标记为非质数。
遍历完整个数组后,剩下的未被标记为非质数的数字即为质数。
输入两个正整数,求出介于这两个数之间的所有质数
使用循环遍历从较小的数到较大的数,对每个数调用质数判断函数。
如果数是质数,则输出该数。
```python
def sieve_of_eratosthenes(n):
is_prime = [True] * (n + 1)
is_prime = is_prime = False
p = 2
while p * p <= n:
if is_prime[p]:
for i in range(p * p, n + 1, p):
is_prime[i] = False
p += 1
return [i for i in range(2, n + 1) if is_prime[i]]
示例:找出1到100之间的所有质数
primes = sieve_of_eratosthenes(100)
print(primes)
```
这个代码首先创建一个布尔数组`is_prime`,用于标记从0到N的所有数是否为质数。然后从2开始,将每个质数的倍数标记为非质数。最后,返回所有标记为质数的数。
希望这些方法能帮助你编写出一个高效的质数筛选程序。