找出1到200之间所有素数并降序排列
时间: 2024-12-20 21:29:57 浏览: 9
找出1到200之间的所有素数,并按照降序排列,我们可以使用一种常见的算法——埃拉托斯特尼筛法(Sieve of Eratosthenes)。这个算法会创建一个从2开始的列表,然后逐步筛选掉非素数,最后剩下的就是素数。
以下是步骤:
1. 创建一个布尔数组isPrime[0...200],初始全部设为true,表示所有数字都是潜在的素数。
2. 从第一个素数2开始,将它的倍数都标记为非素数(即isPrime[i*2] = false, i >= 2)。
3. 继续找到下一个未被标记的数,它是下一个素数(这里是3),再将它的倍数标记为非素数。
4. 重复步骤3,直到遍历到200为止。
5. 最后,isPrime[]中值为true的索引对应的数字就是素数,按降序排序输出即可。
下面是Python代码示例:
```python
def sieve_of_eratosthenes(n):
primes = [True for _ in range(n+1)]
primes[0], primes[1] = False, False
p = 2
while p * p <= n:
if primes[p]:
for i in range(p * p, n+1, p):
primes[i] = False
p += 1
# 获取降序排列的素数
prime_numbers = [i for i, is_prime in enumerate(primes) if is_prime]
return sorted(prime_numbers, reverse=True)
# 输出1到200间的素数
prime_numbers_200 = sieve_of_eratosthenes(200)
print(prime_numbers_200)
阅读全文