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))那个地方我读不懂了,哪位知道的能帮我一句一句解读一下吗? 展开
#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))那个地方我读不懂了,哪位知道的能帮我一句一句解读一下吗? 展开
4个回答
展开全部
//该程序作用在于 找出 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");
}
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");
}
展开全部
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开平方值的总得个数
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开平方值的总得个数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sqrt(i)就是求i的开根号;
i%j==0表示i是否被j整除;
%5d表示输出5位长度的整数
i%j==0表示i是否被j整除;
%5d表示输出5位长度的整数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sqrt() 是一个函数 求平方根的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询