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

素数的算法

#include <stdio.h>
int main()
{
    int m, n;
    for(m=3; 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;    
}

看不太懂啊?求大神讲解一下。比如说m%n==0这个地方和m==n这个地方?

提问者:Obscure 2015-01-17 12:34

个回答

  • Erik_Song
    2015-01-17 13:05:46
    已采纳

    m%n==0 能整除

    m == n 到了循环的结束 

    质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。

  • 我的仰视30
    2015-01-24 15:23:15

    1不是素数,其实素数也就是质素!在我刚才发的程序中 printf("2 ");的2后面有空格,不要忘了!

  • 我的仰视30
    2015-01-24 15:19:23

    我觉得2也是素数,因此正确如下:

    #include <stdio.h>

    int main()

    {

        int m, n;

        printf("2 ");

        for(m=3; 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;    

    }


  • Erik_Song
    2015-01-17 19:07:34

    1, 2 都是素数