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

素数是怎么判断的?

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

不是很理解答案?

提问者:cooooyq 2015-12-06 19:26

个回答

  • Perona
    2015-12-06 19:44:00
    已采纳

    首先了解一下素数的概念。素数是只能除以1和自身的数。

    这里2个for循环,外面的for循环是遍历0-50这几个数的,里面的for是看m除了自己还能不能被整除。

    外面的for从2开始算m是不是素数,n是除数,除数从2开始,如果m除以2余数为0,说明m能被2整除,则m不是素数,里面for循环break,继续算外面的for循环m+1。


  • mukersex
    2016-02-20 13:34:02

    for(i=2;i<=n-1;i=i+1) ,这句中的i=i+1是不是可以换成i++???

  • 一路狂奔到天边
    2015-12-11 22:37:31

    给你一个类似的

    #include<stdio.h>

    main()

    {  

    int i,n,j;

    j=0;

        for(n=101;n<=300;n++)   

    {  

    for(i=2;i<=n-1;i=i+1)    

               if(n%i==0)    

                 break;    

                if(i>=n)

    printf("%d\n",n);

    }  

    printf("%d",j);

    }