为什么最后输出是200呀?

//求100—200间的全部素数。
int i,j,l;
for(i=100;i<=200;i++){
for(j=100;j<=200;j++){
l=i%j;
if(l==0){
if(i!=j){
printf("%d\n",i);
}
}
}
}

改成这样

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

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img


#include "stdio.h"
int main()
{
    int i,j;
    for(i=100;i<=200;i++){
        //排除1和i本身,与其他数做取模操作,等于0就终止循环。
        for(j=2;j<i;j++){
            if(i%j==0){
               break;
            }
        }
        //正常结束循环,i==j表示所有数都不能整除,即素数
        if(i==j){
            printf("%d\n",i);
        }
    }
    return 0;
}

img

img

j应该是小于i的平方根