为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在第一个if后面加了printf就错误了呢?不是很明白

为什么在第一个if后面加了printf就错误了呢?不是很明白

#include <stdio.h>

int main()

{

    int m, n;

    for(m=2; m<=50; m++)

    {

for(n=2; n<m; n++)

        {

            if(m%n==0)

           {

              printf("%d",m); //什么条件下跳出当前循环

              break;

               

           }                 //这里应该退出当前循环了

}

        if(m == n)   //n循环结束后,如果m=n的话就输出m

            printf("%d  ", m);

}

return 0;    

}


正在回答

3 回答

#include <stdio.h>

int main()

{

    int m, n;

    for(m=2; m<=50; m++)

    {

for(n=2; n<m; n++)

        {

            if(m%n==0)

            {

                break;

            }

}

        if(m == n)

            printf("%d  ", m);

}

return 0;

}

//试试这个,明白请采纳ヽ( ̄▽ ̄)ノ

0 回复 有任何疑惑可以回复我~

因为素数是只能被1和自身整除,也就是说不能被(1,m)区间的任何一个数整除,只要m%n==0就不是素数,直接break跳出循环进行下一个数字的验证,不用打印出来了

0 回复 有任何疑惑可以回复我~

你的printf("%d",m);这句句话差了个空格 你可以改成printf("%d-",m);这样结果你可能就知道为什么了~

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么在第一个if后面加了printf就错误了呢?不是很明白

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信