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

4-14作业题 求答案

求素数的编程

提问者:话要好好说 2017-01-06 20:23

个回答

  • 慕粉3727450
    2017-01-06 20:42:20
    已采纳

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

                  }                 //这里应该退出当前循环了

    }//这个for循环是用来判断一个数是不是素数,如果出现了能够整除m的数,就跳出循环。

            if(m == n)   //n循环结束后,如果m=n的话就输出m

                printf("%d  ", m);

    }

    return 0;    

    }

    想法是这样的:

    首先,素数的定义是,当只有1和这个数本身能够整除这个数的时候,这个数就是素数。

    比如,1、2、5、10都可以整除10,所以10这个数不是素数。再比如,只有1和13可以整除13这个数,所以13是素数。

    所以首先我们要判断一个数m是不是素数,就要用从1到它本身之间的数来整除这个数,如果在这个过程中我们发现了任何一个数n可以整除m,就去判断一下n和m的关系。

    如果n不等于m(显然n<=m),则说明m不是素数,就不输出这个数m。

    但是如果n和m相等,说明除了1以外,只有m本身可以整除m,即m是一个素数。