求解 ~~~困惑

来源:4-14 结束语句之break语句

qq_缘徊_03225888

2017-12-11 14:38

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

写回答 关注

3回答

  • qq_缘徊_03225888
    2017-12-13 14:38:45

    #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;    

    }


  • 慕码人8831966
    2017-12-11 17:37:57

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

    qq_缘徊_...

    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 14:41:56

    共 1 条回复 >

  • 90落默转季
    2017-12-11 17:27:47

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

    qq_缘徊_...

    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 14:41:37

    共 1 条回复 >

C语言入门

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

926212 学习 · 20797 问题

查看课程

相似问题