素数反序
时间: 2023-09-26 07:09:23 浏览: 19
素数反序是指将小于给定数 n 的所有素数按照倒序输出。例如,小于 20 的素数有 2、3、5、7、11、13、17、19,反序后输出为 19、17、13、11、7、5、3、2。
实现素数反序的一种常见方法是:先遍历小于 n 的所有数,判断其是否为素数,如果是素数就将其加入到一个数组中。最后反转该数组并输出即可。
需要注意的是,判断一个数是否为素数的方法有很多种,其中较为常用的是试除法。即从 2 开始,到该数平方根为止,依次判断是否能被整除。如果能被整除,则该数不是素数,否则该数是素数。
以下是 Python 代码示例:
```python
def is_prime(n):
"""
判断一个数是否为素数
"""
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def reverse_primes(n):
"""
实现素数反序
"""
nums = [i for i in range(2, n) if is_prime(i)] # 获取小于n的素数列表
return list(reversed(nums)) # 反转素数列表并返回
# 示例
print(reverse_primes(20)) # 输出:[19, 17, 13, 11, 7, 5, 3, 2]
```
以下是 C 语言代码示例:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断一个数是否为素数
bool is_prime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
// 实现素数反序
void reverse_primes(int n) {
int nums[n], count = 0;
for (int i = 2; i < n; i++) {
if (is_prime(i)) {
nums[count++] = i;
}
}
for (int j = count - 1; j >= 0; j--) {
printf("%d ", nums[j]);
}
}
// 测试
int main() {
reverse_primes(20); // 输出:19 17 13 11 7 5 3 2
return 0;
}
```
阅读全文