c语言判断101到200之间的素数

#include <stdio.h>
int main()
{
    int i,j;int n=0;int y=2;
    for ( i = 101; i < 200; i++)
    {
       
   
   
    for (int j = 2; j <=i; j++)
    {
        if (i%j==0)
        {
         y=1;   break;
        }
       
       
    }
    if (y==2)
    {
        printf("%d ",i);
        n++;
    }
   
   
    }    

 printf("\n%d",n);

观众老爷们,帮忙看看为什么这个方法不行啊孩子要疯了

需要改两个地方,如注释所示:

#include <stdio.h>
int main()
{
    int i,j;
    int n=0;
    int y=2;
    for ( i = 101; i < 200; i++)
    {
        y = 2; //每次判断i是否为质数都需要把y重置为2,不然找到第一个合数以后y就一直是1
        for (int j = 2; j <i; j++) //这里循环结束条件应该是j<i,所有的整数都可以被自身整除
        {
            if (i%j==0)
            {
                y=1;
                break;
            }
        }
        if (y==2)
        {
            printf("%d ",i);
            n++;
        }
    }    
    printf("\n%d",n);
    return 0;
}

y=2放到第一个循环里。判断素数是<不是小于等于。