求100以内的素数c语言数组
时间: 2023-11-22 13:49:44 浏览: 256
以下是求100以内素数的C语言程序,使用的是埃氏筛法:
```c
#include <stdio.h>
int main() {
int n = 100;
int pri[101] = {0}; // 0表示素数,1表示合数
for (int i = 2; i <= n; i++) {
if (!pri[i]) { // 如果i是素数
for (int j = i * i; j <= n; j += i) { // 将i的倍数标记为合数
pri[j] = 1;
}
}
}
for (int i = 2; i <= n; i++) {
if (!pri[i]) { // 输出所有素数
printf("%d ", i);
}
}
return 0;
}
```
相关问题
C语言数组求100以内的素数
以下是C语言求100以内素数的代码和解释:
```c
#include <stdio.h>
int main() {
int prime[101] = {0}; // 初始化数组,0表示素数,1表示合数
for (int i = 2; i <= 100; i++) {
if (prime[i] == 0) { // 如果当前数是素数
printf("%d ", i); // 输出素数
for (int j = i * i; j <= 100; j += i) {
prime[j] = 1; // 将当前素数的倍数标记为合数
}
}
}
return 0;
}
```
解释:
1. 首先定义一个长度为101的数组prime,用于存储100以内的素数和合数,数组下标表示数字,数组元素为0表示该数字是素数,为1表示该数字是合数。
2. 初始化数组,将所有元素都赋值为0。
3. 从2开始循环到100,如果当前数字是素数,则输出该数字,并将该数字的倍数标记为合数。
4. 标记合数的方法是从当前素数的平方开始,每次加上当前素数,直到超过100为止。
5. 最后输出结果。
用C语言把100以内素数存入数组
好的,以下是将100以内素数存入数组的C语言代码:
```c
#include <stdio.h>
int main() {
int prime_numbers[25]; // 定义素数数组
int count = 0; // 素数个数
for (int num = 2; num <= 100; num++) {
int is_prime = 1; // 标记是否是素数
for (int i = 2; i < num; i++) {
if (num % i == 0) {
is_prime = 0; // 不是素数
break;
}
}
if (is_prime) {
prime_numbers[count] = num;
count++;
}
}
printf("100以内的素数有:\n");
for (int i = 0; i < count; i++) {
printf("%d ", prime_numbers[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
100以内的素数有:
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
```
这段代码使用了两个for循环,外层循环遍历2到100之间的所有数字,内层循环从2开始逐个除以当前数字,如果整除了就可以判断该数字不是素数,跳出内层循环。如果内层循环遍历完整个范围都没有整除,就说明当前数字是素数,将其添加到素数数组中。最后遍历素数数组并输出即可。注意,我们在定义素数数组时,数组大小为25,这是因为100以内的素数个数最多为25个,不过这个大小可以根据实际情况调整。
阅读全文