c 语言从大到小输出素数
时间: 2024-10-11 16:13:11 浏览: 63
在C语言中,要从大到小输出素数,我们可以使用循环和条件判断的方式实现埃拉托斯特尼筛法(Sieve of Eratosthenes)。这里是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
// 定义最大值
#define MAX_PRIME 1000
void print_primes(int limit) {
bool is_prime[MAX_PRIME + 1];
for (int i = 2; i <= MAX_PRIME; i++) {
is_prime[i] = true;
}
// 开始筛除非素数
for (int p = 2; p * p <= MAX_PRIME; p++) {
if (is_prime[p]) {
for (int i = p * p; i <= MAX_PRIME; i += p)
is_prime[i] = false;
}
}
// 输出剩余的素数
printf("Prime numbers from %d to %d in descending order:\n", MAX_PRIME, 2);
for (int p = MAX_PRIME; p >= 2; p--) {
if (is_prime[p])
printf("%d ", p);
}
printf("\n");
}
int main() {
print_primes(MAX_PRIME);
return 0;
}
```
这个程序首先初始化一个布尔数组表示每个数是否是素数,然后通过内层循环去除所有能整除当前素数的数。最后,它遍历数组并打印出大于或等于指定最大值的素数。
阅读全文
相关推荐




















