C语言题目:求100之内的素数。 程序分析:质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。
时间: 2024-12-29 20:28:15 浏览: 23
在C语言中,我们可以编写一个简单的程序来找出100以内的所有素数。以下是实现这个功能的一种常见算法——埃拉托斯特尼筛法(Sieve of Eratosthenes)的一个示例:
```c
#include <stdio.h>
void find_primes(int limit) {
// 初始化布尔数组,所有数字初始认为是素数
int is_prime[limit+1] = {1};
for (int i = 2; i * i <= limit; i++) {
// 如果is_prime[i]还未改变,则i是一个素数
if (is_prime[i]) {
// 标记i的所有倍数为合数
for (int j = i * i; j <= limit; j += i)
is_prime[j] = 0;
}
}
printf("素数列表:\n");
for (int i = 2; i <= limit; i++) {
if (is_prime[i])
printf("%d ", i);
}
printf("\n");
}
int main() {
int n = 100;
find_primes(n);
return 0;
}
```
在这个程序中,我们创建了一个布尔数组`is_prime[]`,并从2开始遍历到√n。如果当前数`i`是素数(`is_prime[i]`为1),我们就将其所有的倍数标记为合数。最后,我们打印出所有值为`true`(即素数)的索引,就是100以内的素数。
阅读全文