编写一个C语言程序,用筛选法求出100之内的所有素数。
时间: 2023-12-03 17:07:46 浏览: 29
好的,以下是求100以内的所有素数的C语言程序:
#include <stdio.h>
int main() {
int isPrime[101]; //标记数组,isPrime[i]=1表示i是素数
int i, j;
//初始化数组
for (i = 2; i <= 100; i++) {
isPrime[i] = 1;
}
//筛选出素数
for (i = 2; i <= 100; i++) {
if (isPrime[i]) {
//将i的倍数标记为非素数
for (j = 2 * i; j <= 100; j += i) {
isPrime[j] = 0;
}
}
}
//输出所有素数
for (i = 2; i <= 100; i++) {
if (isPrime[i]) {
printf("%d ", i);
}
}
return 0;
}
希望可以帮到您!现在,请问您还有其他问题吗?
相关问题
用c语言编写程序,用筛选法求出100之内的所有素数。
您好!那么我可以回答您的第一个问题:使用C语言编写程序,通过筛选法求出100以内的所有素数。筛选法,也称为埃氏筛法,是一种简单而有效的素数筛法。您可以使用以下代码实现此功能:
```c
#include <stdio.h>
#include <math.h>
int main() {
int prime[101]; // 用来记录素数的数组
int i, j;
for (i = 2; i <= 100; i++) {
prime[i] = 1; // 先将所有数标记为素数
}
for (i = 2; i <= sqrt(100); i++) {
if (prime[i]) { // 如果i是素数
for (j = i * i; j <= 100; j += i) {
prime[j] = 0; // 标记i的倍数为非素数
}
}
}
printf("100以内的素数有:");
for (i = 2; i <= 100; i++) {
if (prime[i]) {
printf("%d ", i); // 输出所有素数
}
}
printf("\n");
return 0;
}
```
希望能对您有所帮助!如果您有其他问题,可以随时问我哦~
c语言编写一段程序:用筛选法求100之内的素数
```
#include <stdio.h>
int main() {
int i, j, prime[101] = {0}, count = 0;
// 筛选法求素数
for (i = 2; i <= 100; i++) {
if (prime[i] == 0) {
count++;
for (j = i * i; j <= 100; j += i) {
prime[j] = 1;
}
}
}
// 输出素数
printf("100以内的素数有:\n");
for (i = 2; i <= 100; i++) {
if (prime[i] == 0) {
printf("%d ", i);
}
}
printf("\n共有%d个素数\n", count);
return 0;
}
```