问答详情
源自:4-14 结束语句之break语句

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

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



提问者:陆瑾言 2020-03-26 10:17

个回答

  • 慕桂英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

  • 心所往_情所向
    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;    

    }