C语言求素数代码为啥什么也打印不出来

int num, i; 
int    flag = 1;
for ( num = 100; num <= 200; num++){
    //printf ("%d\n",num);
    for ( i = 2; i < num/2; i++){
        if (num % i == 0){
            flag = 0;
            break;
        }
    }
    if (flag){
        printf ("%d ",num);}

}

每次循环之前flag应该设为1,否则第一次不是素数后flag一直是0,后面的就不会输出了

img

#include <stdio.h>
#include <math.h>
int main()
{
    int num, i;
    int  flag = 1;
    for ( num = 100; num <= 200; num++)
    {
        flag=1;
        for ( i = 2; i <num/2; i++)
        {
            if (num%i == 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag==1)
        {
            printf ("%d ",num);
        }

    }return 0;
}


注意flag=1的位置,对于每一个num,都要将flag先置为1

int num, i;
    
    for ( num = 100; num <= 200; num++) {
        int    flag = 1;
        //printf ("%d\n",num);
        for ( i = 2; i < num / 2; i++) {
            if (num % i == 0) {
                flag = 0;
                break;
            }
        }
        if (flag) {
            printf ("%d ", num);
        }
    }

flag=1 在for 循环里面,重要的事说三遍!

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632