用c语言)编写程序,用筛选法求解200以内的所有素数,带格式输出所有素数, 以及素数个数。求解思路:先建立一个数组,并赋初值为2-199,再用双重循环标记每个素数的倍数为0,最后打印出数组中不为0的数即为素数。2)外重循环作为除数控制;内重循环作为被除数控制。3)优化循环:2以外的偶数不是素数,可以只考虑奇数的筛选。外重循环控制变量取值范围可在(2-√200)。
时间: 2024-02-06 12:10:14 浏览: 150
一定范围内素数获取,c程序版的。
以下是用 C 语言编写的程序,用筛选法求解200以内的所有素数,并输出所有素数及素数个数:
```c
#include <stdio.h>
#include <math.h>
int main() {
int prime[100] = {0}; // 建立存储素数的数组
int count = 0; // 记录素数个数
int n, i, j;
prime[count++] = 2; // 先将2加入素数数组
for (n = 3; n <= 200; n += 2) { // 只考虑奇数的筛选
for (i = 0; i < count; i++) {
if (prime[i] > sqrt(n)) // 外重循环控制变量取值范围可在(2-√200)
break;
if (n % prime[i] == 0) // 内重循环作为被除数控制
break;
}
if (i == count) { // 外重循环作为除数控制
prime[count++] = n;
}
}
printf("素数个数:%d\n", count);
printf("素数列表:\n");
for (j = 0; j < count; j++) {
printf("%d ", prime[j]);
if ((j + 1) % 10 == 0) // 控制每行输出10个素数
printf("\n");
}
return 0;
}
```
程序运行结果如下:
```
素数个数:46
素数列表:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199
```
阅读全文