#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这个地方?
m%n==0 能整除
m == n 到了循环的结束
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。
1不是素数,其实素数也就是质素!在我刚才发的程序中 printf("2 ");的2后面有空格,不要忘了!
我觉得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;
}
1, 2 都是素数