输出101到200的质数


#include <stdio.h>
int main()
{
    int n,i;
    for(n=101;n<=200;n++)
    for(i=2;i<n;i++){
    if(n%i==0)
    break;
    else
    printf("质数为:%d\n",n);
    }
    return 0;
 } 

运行结果有问题,不知道该怎么改了

修改如下:


#include <stdio.h>
int main()
{
    int n,i;
    for(n=101;n<=200;n++)
    {
        for(i=2;i<n;i++)
        {
            if(n%i==0)
                break;
        }
        if(i==n) //注意,在这里判断并输出
            printf("质数为:%d\n",n);
    }
        
    return 0;
} 

#include <stdio.h>
#include <math.h>

//判断 101-200 之间有多少个素数,并输出所有素数.
int
main(void) {
    int s = 101, e = 200;
    int count = 0;    //素数总个数.
    int i;
    int sq;    //对每个数开方.

    for(i = s; i <= e; i++)    {
        int isPrime = 1;    //标识当前数是否为素数,素数为1,0为非素数.
        sq = (int)sqrt((float)i);
        for(int j = 2; j <= sq; j++) {
            if(i%j == 0) {    //非素数.
                isPrime = 0;
                break;;
            }
        }

        if(isPrime) {
            printf("%d\n", i);
            ++count;
        }
    }

    printf("素数总个数为:%d\n", count);
}