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

求解 ~~~困惑

求解 例如 m=3, n=2;n<m不就是n的取值范围只能是2罗   那么3%2!=0 3不是素数嘛,可m!=n呀 如果改成n<=m  那么3就是素数了 可问题是为啥是n<m 呀   乱了我一脸懵逼 求救

正在回答

3 回答

#include <stdio.h>

int main()

{

    int m, n;

    for(m=2; m<=50; m++)     如果m=3

    {

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

        {

            if(    m%n==0    )       3%2不等于0

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

}

        if(m == n)                       3不等于2

            printf("%d  ", m);      这里m 就不会输出3啦 ,也就是3不是素数啦,想要3是素数,条件不应该是n<=吗,                                                    为啥n<m就可以了呢  就是这个我不理解

}

return 0;    

}


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

3是素数,但我觉得你这个是m是指外面传入的数,n是指从1到其本身之前的数,只有能被1和本身整除的数才是素数,所以最后跳出去的会是m=n

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

qq_缘徊_03225888 提问者

for(m=2; m<=50; m++) //如果m=3 { for(n=2; n<=m; n++) //n<3——n=2 { if( m%n==0 ) //3%2不等于0 break; } if(m == n) // 3不等于2 printf("%d ", m); //这里m 就不会输出3啦 ,也就是3不是素数啦,想要3是素数,条件不应该是n<=吗,啥n<m就可以了呢 就是这个我不理解 }
2017-12-13 回复 有任何疑惑可以回复我~

3%2!=0 ,那么3就是素数啊!

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

qq_缘徊_03225888 提问者

for(m=2; m<=50; m++) //如果m=3 { for(n=2; n<=m; n++) //n<3——n=2 { if( m%n==0 ) //3%2不等于0 break; } if(m == n) // 3不等于2 printf("%d ", m); //这里m 就不会输出3啦 ,也就是3不是素数啦,想要3是素数,条件不应该是n<=吗,啥n<m就可以了呢 就是这个我不理解 }
2017-12-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

求解 ~~~困惑

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