判断101-200之间有多少个素数,并输出所有素数,每行10个

#include<stdio.h>
void main()
{
int i,j,c=0;
for(i=101;i<=200;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(j>=i)
{
c++;
printf("%d ",i);
if(c%10==0)
printf("\n");
}
}
}
帮忙详细分析一下每行是什么意思好吗?

void main()
{
int i,j,c=0; //定义一些变量
for(i=101;i<=200;i++) //循环,以判断101 到 200 间的质数
{
for(j=2;j<=i;j++)//循环,判断当前数(i)是否是质数
{
if(i%j==0) //是否还能被其他数整除
break;//还能被某个数整除,不是质数,退出当前循环
}
if(j>=i)//如果以上循环是由于reak语句退出的,说明当前数i 还有其他因子,是合数
{//此时,j < i,如果是满足循环结束条件退出的,此时说明没有其他因子,为
//质数,此时 i == j,为了保险,程序使用的判断条件是 j >= i
c++;//计数,主要是用于控制输出:每行10个
printf("%d ",i);//显示结果
if(c%10==0)//计数是10的整数倍
printf("\n");//就输出一个换行符
}
}
}追问

j是从2开始的,i是从101开始的,j>=i是怎么回事

追答

质数从 2 开始,j>=i 以上说清楚。
for(j=2;j<=i;j++) 循环是判断因子的。

追问

那个意思是从2至101只循环第二个for循环吗?从102开始又重新从第一个for开始循环了?

温馨提示:答案为网友推荐,仅供参考
相似回答