求素数的编程
#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是一个素数。