怎么用C语言列举素数
时间: 2024-11-27 07:15:44 浏览: 8
在C语言中,列举素数可以使用经典的“埃拉托斯特尼筛法”(Sieve of Eratosthenes)。这是一个用于查找一定范围内所有质数的有效算法。以下是简单的步骤:
```c
#include <stdio.h>
void sieve_of_eratosthenes(int n) {
// 创建一个布尔数组,所有元素初始化为true
int primes[n+1];
for (int i = 0; i <= n; i++) {
primes[i] = 1;
}
// 将0和1标记为非素数
primes[0] = primes[1] = 0;
// 遍历到sqrt(n),因为大于n的所有因子必然有一个小于或等于sqrt(n)
for (int p = 2; p * p <= n; p++) {
// 如果primes[p]尚未被改变,说明p是素数
if (primes[p]) {
// 更新其倍数为合数
for (int i = p * p; i <= n; i += p) {
primes[i] = 0;
}
}
}
// 输出素数
for (int p = 2; p <= n; p++) {
if (primes[p]) {
printf("%d ", p);
}
}
}
int main() {
int num = 50; // 想要找出的范围,例如找出50以内的素数
sieve_of_eratosthenes(num);
return 0;
}
```
阅读全文