C语言求1-100内的素数,请问我哪里错了

img

img

C语言:相求1-100内的素数,用while语句得出结果不对

img

首先,最外面的循环最后的break去掉,应该能解决你的问题。
当时每次比较2-100其实效率不是很好,我这里简单写了个,你参考下:


```c
#include <stdio.h>

int main()
{
    int is_prime = 0;
    
    int prime[100] = {0};
    prime[0] = 2;
    int prime_idx = 1;
    
    int x = 3;
    
    while(x <= 100) {
        int i = 0;
        is_prime = 1;
        while(prime[i]) {
            if (x % prime[i++] == 0) {
                is_prime = 0;
                break;
            }
        }
        if (is_prime) {
            prime[prime_idx++] = x;
            printf("new prime: %d\n", x);
        }
        x++;
    }

    return 0;
}

如果还有其他问题,欢迎私信交流~~~

如果觉得答案符合你的要求,别忘记采纳哦~~~~

#include"stdio.h"
int main()
{
int i,j;
for(i=1;i<=200;i++)// 枚举 1~200之间的数
{
int f=1;// f 标记是否为素数 1表示是素数 0表示不是素数
for(j=2;j<i;j++) // 枚举 [2,n-1] 2 3 4 5 6 7 8 ---- n-1
{
if(i%j==0)
f=0;
}
if(f==1)
printf("%d ",i);
}
return 0;
}

请看👉 :【C语言】输出100内素数