用c语言输出指定范围内的素数
时间: 2024-12-23 18:17:47 浏览: 17
在C语言中,输出指定范围内(例如1到n)的所有素数可以采用一种常见的算法——埃拉托斯特尼筛法(Sieve of Eratosthenes)。这是一种用于查找一定范围内所有质数的有效算法。以下是简单的步骤:
```c
#include <stdio.h>
#define MAX 100 // 设置最大检查数字
int isPrime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return 0;
}
return 1;
}
void printPrimes(int n) {
int prime[MAX];
for (int i = 0; i <= n; i++)
prime[i] = 1; // 初始化数组,假设每个数都是质数
for (int p = 2; p * p <= n; p++) {
if (prime[p]) { // 如果p是质数
for (int i = p * p; i <= n; i += p)
prime[i] = 0; // 将p的倍数标记为非质数
}
}
printf("质数在1到%d之间的有:\n", n);
for (int p = 2; p <= n; p++)
if (prime[p])
printf("%d ", p); // 输出所有剩余的质数
printf("\n");
}
int main() {
int range;
printf("请输入你要找出质数的范围上限(1-%d): ", MAX - 1);
scanf("%d", &range);
printPrimes(range);
return 0;
}
```
阅读全文