想要输出100-200的素数,怎么输出了全部的数 有点费解

img

img

题主的代码修改如下,5个一行显示,供参考:

#include<stdio.h>
int main()
{
    int x, i, isprime, count = 0;
    for(x=101;x<=200;x++)
    {
        isprime = 1;
        for (i = 2; i * i <= x; i++) {
            if (x % i == 0) {
                isprime = 0;
                break;
            }
        }
        if (isprime == 1) {
            printf("%c%d", count == 0 ? '\r' : count % 5 == 0 ? '\n' : ' ', x);
            count++;
        }
    }
    return 0;
}

因为总有不整除的
你现在的逻辑是只要找到不整除的数就认为其为素数
正确逻辑是只要找到能整除的数就认为不是素数
有帮助望采纳

第二层for循环里边,找到直接输出皆可

img


这里加一句isprime=0;

你的程序中ispreme只要被赋值为1,就无法改变,所以输出了所有数