C语言数组求100以内的素数
时间: 2024-01-05 12:05:14 浏览: 119
以下是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以内素数
以下是使用C语言数组输出100以内素数的代码示例:
```c
#include <stdio.h>
int main() {
int primes[100];
int count = 0;
for (int num = 2; num <= 100; num++) {
int isPrime = 1;
for (int i = 2; i < num; i++) {
if (num % i == 0) {
isPrime = 0; break;
}
}
if (isPrime) {
primes[count] = num;
count++;
}
}
printf("100以内的素数为:");
for (int i = 0; i < count; i++) {
printf("%d ", primes[i]);
}
printf("\n素数的个数为:%d\n", count);
return 0;
}
```
该代码使用了一个数组`primes`来存储100以内的素数,使用变量`count`来记录素数的个数。首先,从2开始遍历到100,对于每个数字,使用一个内部循环来判断是否为素数。如果该数字能被2到其本身前一个数字整除,则不是素数,将`isPrime`标记为0。如果内部循环结束后`isPrime`仍然为1,则该数字是素数,将其存储在数组`primes`中,并将`count`加1。最后,输出数组中的素数以及素数的个数。
求100以内的素数c语言数组
以下是求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;
}
```
阅读全文