c语言求2到n之间的素数
时间: 2024-11-06 19:22:31 浏览: 34
在C语言中,求2到n之间的素数可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种经典的寻找所有小于给定数字n的素数的算法。以下是简单的步骤:
```c
#include <stdio.h>
#include <stdbool.h>
void sieve_of_eratosthenes(int n) {
bool is_prime[n+1];
for (int i = 0; i <= n; i++) {
is_prime[i] = true; // 初始化所有数为质数假设
}
is_prime[0] = false;
is_prime[1] = false;
for (int p = 2; p * p <= n; p++) { // 只需检查到√n
if (is_prime[p]) {
// 把p的倍数标记为合数
for (int i = p * p; i <= n; i += p)
is_prime[i] = false;
}
}
// 输出所有的素数
printf("Prime numbers between 2 and %d are:\n", n);
for (int p = 2; p <= n; p++)
if (is_prime[p])
printf("%d ", p);
}
int main() {
int n;
printf("Enter a number (n): ");
scanf("%d", &n);
sieve_of_eratosthenes(n);
return 0;
}
```
当你运行这个程序并输入一个整数n时,它会打印出从2到n的所有素数。
阅读全文