用c语言实现把200以内的所有素数存放到一维数组中并输出
时间: 2023-11-26 18:15:23 浏览: 100
好的,我可以帮您解答这个问题。以下是用 C 语言实现将 200 以内的所有素数存放到一维数组中并输出的代码:
```c
#include <stdio.h>
int main() {
int i, j, flag, count = 0;
int primes[46]; // 最多有46个素数
primes[count++] = 2; // 先将2加入素数数组中
// 从3开始遍历所有奇数,判断是否为素数
for (i = 3; i <= 200; i += 2) {
flag = 1; // 假设i为素数
// 遍历2到i-1之间的所有数,判断是否能整除i
for (j = 2; j < i; j++) {
if (i % j == 0) {
flag = 0; // i能被j整除,不是素数
break;
}
}
if (flag) {
primes[count++] = i; // 将素数加入数组中
}
}
// 输出所有素数
printf("200以内的素数有:\n");
for (i = 0; i < count; i++) {
printf("%d ", primes[i]);
}
printf("\n");
return 0;
}
```
解释一下代码:
首先定义一个数组 `primes`,用来存放所有素数。因为200以内的素数最多有46个,所以数组大小为46。然后将2加入素数数组中(2是最小的素数)。
接着从3开始遍历所有奇数,判断是否为素数。如果一个数能被2整除,那么它不是素数,因此我们只需要遍历所有奇数。假设当前遍历的数 `i` 是素数,然后遍历2到i-1之间的所有数,判断是否能整除i。如果能整除,那么i不是素数,将标志位 `flag` 设为0,跳出循环。如果不能整除,那么i可能是素数,继续遍历下一个数。
当遍历完所有奇数后,数组 `primes` 中存放了所有素数。最后遍历素数数组,输出所有素数。
阅读全文