C语言程序段解读

#include<stdio.h>#include<math.h>voidmain(){inti,n=0,j;for(i=666;i<=777;i++){for(j=2;... #include <stdio.h>
#include <math.h>
void main()
{ int i,n=0,j;
for (i=666;i<=777;i++)
{ for (j=2;j<=sqrt(i);j++)
if (i%j==0) break;
if (j>sqrt(i)) {n++; printf("%5d",i);
}
printf("%5d",n);
}
这个简单的程序段,中间从(for(j=2,j<=sqrt(i))那个地方我读不懂了,哪位知道的能帮我一句一句解读一下吗?
展开
 我来答
颜叉叉补a7
2011-10-14 · 超过19用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:20万
展开全部
//该程序作用在于 找出 666~777之间的质数
void main()
{
int i,n=0,j;
for (i=666 ;i<=777 ;i++)
{
for (j=2 ;j<=sqrt((float)i) ;j++)//j的范围是 2~sqrt(i)之间的整数值
if (i%j==0) break; //如果 i能整除2~sqrt(i)之间的某个数,说明它不是质数,所以break
if (j>sqrt((float)i)) //这个条件成立的时候,只有if(i%j)==0始终没有成立的前提下,for循环退出时,j++任然会执行一次,所以才会 j>sqrt(i)
{
n++; //质数的个数
printf("第%d个 = %5d \n",n,i);
}
}
printf("n = %5d \n",n);
system("pause");
}
mzswxg11
2011-10-13
知道答主
回答量:8
采纳率:0%
帮助的人:4万
展开全部
1.j<=sqrt(i)是开平方
2. if (i%j==0) break;i%j==0求余i可以整出j ,如果整除跳出 for (j=2;j<=sqrt(i);j++)
循环到for (i=666;i<=777;i++)循环
printf("%5d",i);输出 j大于i开平方时的i值,
n是j大于i开平方值的总得个数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清丽还锐利的小雀N
2011-10-13 · 超过10用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:23.9万
展开全部
sqrt(i)就是求i的开根号;
i%j==0表示i是否被j整除;
%5d表示输出5位长度的整数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a530963
2011-10-13 · TA获得超过114个赞
知道答主
回答量:95
采纳率:0%
帮助的人:58万
展开全部
sqrt() 是一个函数 求平方根的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式