如何用C语言编程实现并输出从1到100的所有质数(素数)?
时间: 2024-11-25 15:15:50 浏览: 4
使用c语言判断100以内素数的示例(c语言求素数)
要使用C语言编写程序来找出并输出从1到100之间的所有质数(素数),我们可以采用一种常见的算法——埃拉托斯特尼筛法(Sieve of Eratosthenes)。这个算法逐个排除合数,留下的就是质数。
以下是一个简单的实现:
```c
#include <stdio.h>
// 判断是否为质数的辅助函数
int is_prime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) { // 只需检查到 sqrt(num)
if (num % i == 0)
return 0;
}
return 1;
}
// 主函数,输出1到100的质数
void print_primes() {
int numbers[100] = {0}; // 初始化一个数组,标记非质数
int count = 0; // 记录质数的数量
for (int i = 2; i < 100; i++) { // 从2开始,因为1不是质数
if (is_prime(i)) {
numbers[count++] = i; // 如果是质数,存储并计数
}
}
printf("Prime numbers from 1 to 100:\n");
for (int i = 0; i < count; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
}
int main() {
print_primes();
return 0;
}
```
在这个程序中,`is_prime` 函数用来判断一个数是否是质数,`print_primes` 函数负责筛选并打印出1到100内的质数。`main` 函数调用 `print_primes` 完成整个过程。
运行这段代码后,你会看到1到100之间所有的质数。
阅读全文