用数组来求100以内的素数c语言
时间: 2024-01-05 15:05:14 浏览: 57
以下是用数组来求100以内素数的C语言代码:
```c
#include <stdio.h>
int main()
{
int prime[101] = {0}; // 初始化数组,0表示素数,1表示非素数
int i, j;
for (i = 2; i <= 100; i++) // 从2开始筛选
{
if (prime[i] == 0) // 如果是素数
{
for (j = i + i; j <= 100; j += i) // 将所有能被i整除的数标记为非素数
{
prime[j] = 1;
}
}
}
printf("100以内的素数有:\n");
for (i = 2; i <= 100; i++) // 输出所有素数
{
if (prime[i] == 0)
{
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. 最后输出结果。
求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;
}
```