判断素数的程序我不理解,求解

想知道输入3为什么不应该是i%j=0了吗,不会输出“不是素数”吗,为什么break跳出就不会输出上一行的“不是素数”了

#include

int main()
{
int i=0;
int j=0;
scanf("%d",&i);
for(j=2;j
{
if(i%j==0)
{
printf("不是素数\n");
break;
}
}
if(j==i)
{
printf("是素数,i=%d\n",i);
}
}

3是素数,所以不会输出不是素数,而且它不是break,for循环它只循环了一次,就是j=2时,这个时候 i % j,就是3 % 2不等于0,所以不会输出不是素数,然后之后j变成了3,不满足j < i,for循环就结束了

3%2=1 并不等于0

还是对%理解的不对
建议再学习一下取余
如11%5 = 1
3%2 = 1
16%7 = 2

输入 i = 3; 进入for() 循环 ,初始 j = 2 , if( i % j == 0) ==> if(3 % 2 = 1 != 0) , 条件不满足,不会执行printf("不是素数\n"); break; 这两句。然后for()循环里 j++ ,j =3 , j < i ==> 3 < 3 不满足,跳出for() 循环, 在for()循环外 if (i == j) 条件满足,执行 printf("是素数,i=%d\n",i); 。