程序说每个数字都是素数

0 c

我已经创建了这个C程序,它应该告诉我在1-25之间有多少素数,但它打印的是每个数字都是素数.请帮忙

#include<stdio.h>

int main(void) {

int n = 1, counter = 0;
int i, flag = 0;

while ( n <= 25 ) 
{
    for ( i = 2; i <= (n/2); i++ ) 
    {
        if (n%i == 0) 
        {
            flag = 0;
        }
    }
    if (flag == 0) 
    {
        counter++;
        printf("%d is Prime Number.\n", n);
    } 
    else 
    {
        printf("%d is not Prime Number.\n", n);
    }
    n++;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

Sak*_*mar 5

flag = 0;
Run Code Online (Sandbox Code Playgroud)

你的国旗永远是0.1进入while循环时必须将其设置为

while ( n <= 25 ) {
    flag = 1; //<-- here
    for ( i = 2; i <= (n/2); i++ ) {
Run Code Online (Sandbox Code Playgroud)

您也可以break在细分市场中,只是为了提高效率

if (n%i == 0) 
{
    flag = 0;
    break;
}
Run Code Online (Sandbox Code Playgroud)