m%n==0怎么判断是素数啊。看了好多评论还是不懂

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

陆瑾言

2020-03-26 10:17

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



写回答 关注

3回答

  • 慕桂英1453556
    2020-07-10 23:45:34

    仅靠m%n==0无法判断m是素数,这个表达式只能说明m能被n整除而已,这个表达式只是用来找m在2到m-1范围内是否具有一个n能整除m,如果有,则m不是素数


  • 心所往_情所向
    2020-03-26 10:43:48

    能被2到自身整除的话就不是质数,跳出当前这个循环(for);如果一直不跳,n++会累积到m

    qq_慕神4... 回复超优秀

    因为n在执行完最后一次循环后,还会自增一次,比如m为5,n的最后一次循环为n=4,循环完变为5,条件不成立了,不再循环,但是n和m相等了

    2020-04-07 13:50:43

    共 3 条回复 >

  • 心所往_情所向
    2020-03-26 10:39:47

    #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)   //n循环结束后,如果m=n的话就输出m

                printf("%d  ", m);

    }

    return 0;    

    }



C语言入门

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

926944 学习 · 21533 问题

查看课程

相似问题