C语言求一百以内所有素数
时间: 2024-09-23 11:06:19 浏览: 49
骨干网问题程序代码,c语言求100以内素数源码,c语言
在C语言中,我们可以使用一种常见的算法,即埃拉托斯特尼筛法(Sieve of Eratosthenes),来找出100以内所有的素数。以下是简单的代码实现:
```c
#include <stdio.h>
// 函数声明
void sieve_of_eratosthenes(int limit);
int main() {
int limit = 100;
sieve_of_eratosthenes(limit);
printf("100以内的素数有:\n");
for (int i = 2; i <= limit; ++i) {
if (is_prime[i]) {
printf("%d ", i); // 如果i是素数,则打印
}
}
return 0;
}
// 素数判断函数
int is_prime[limit + 1]; // 初始化数组,所有元素初始化为1(表示都是素数)
void sieve_of_eratosthenes(int limit) {
for (int i = 2; i * i <= limit; i++) { // 遍历到 sqrt(limit)
if (is_prime[i] == 1) { // 如果i是素数
for (int j = i * i; j <= limit; j += i) { // 将i的所有倍数标记为合数
is_prime[j] = 0;
}
}
}
}
```
在这个程序中,`sieve_of_eratosthenes`函数首先将所有数字标记为素数(假设值为1表示素数,0表示非素数)。然后从2开始,如果发现某个数字i是素数,就将其所有倍数标记为合数。最后,在主函数中打印出所有被保留下来的素数。
阅读全文