C语言程序代码,用筛选法求100之内的素数
时间: 2023-12-03 13:18:01 浏览: 34
好的,下面是使用筛选法求100之内的素数的C语言程序代码:
```c
#include <stdio.h>
int main() {
int n = 100;
int prime[n+1];
for(int i=0; i<=n; i++)
prime[i] = 1;
prime[0] = 0;
prime[1] = 0;
for(int i=2; i*i<=n; i++) {
if(prime[i] == 1) {
for(int j=i*i; j<=n; j+=i)
prime[j] = 0;
}
}
printf("2 ");
for(int i=3; i<=n; i+=2) {
if(prime[i] == 1)
printf("%d ", i);
}
return 0;
}
```
在这个程序中,我们首先创建了一个大小为n+1的布尔数组prime,用于表示0到n之间的数是否为素数。我们将数组中的所有元素都初始化为1(即所有数都先标记为素数),然后将0和1的标记改为0(因为0和1不是素数)。
接着,我们从2开始,遍历到sqrt(n)为止,对于每个素数i,将i*i到n之间i的倍数的数的标记都改为0。这样,我们就排除了所有的合数。
最后,我们输出2和所有的奇数(因为偶数都已经被排除了),并且它们的标记为1,因此它们都是素数。
希望能帮助到你!