cooooyq
2015-12-06 19:26
#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;
}
不是很理解答案?
首先了解一下素数的概念。素数是只能除以1和自身的数。
这里2个for循环,外面的for循环是遍历0-50这几个数的,里面的for是看m除了自己还能不能被整除。
外面的for从2开始算m是不是素数,n是除数,除数从2开始,如果m除以2余数为0,说明m能被2整除,则m不是素数,里面for循环break,继续算外面的for循环m+1。
for(i=2;i<=n-1;i=i+1) ,这句中的i=i+1是不是可以换成i++???
给你一个类似的
#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);
}
C语言入门
926207 学习 · 20797 问题
相似问题