int(N)是将N强制转换成int类型,sqrt(n)是平方根函数,int(sqrt(n))是先对n进行平方运算,然后再将运算结果强制转换成int类型
楼主的程序是想得到50到100之间的质数吧。 s=(int)sqrt(n)的意思就是对n开平方后取整。 这样做是为了提高计算效率,因为如果一个数不是质数的话,对它做因式分解,至少有一个因子是小于或者等于它的开方取整的,如果在小于或等于n的开方取整中没有找到它的因子,那么就可以判断n是质数。结果一 题目 s=(int)sqrt...
把n开平方,然后取整。如int(sqrt(5))=2
sqrt是一个函数 作用是开平方 返回值是double
sqrt(n)就是根号n,根号3是1.732,但是k是int型,会切掉小数点后面的部分,是切掉,不是四舍五入,所以是1
我是这样理解的,sqrt 是square和root这两个单词的组合,sq代表square,rt代表root,就是平方根的意思。
sqrt()原型为double sqrt(double_x)那个n会自动转换成double类型 返回的依然是double类型
sqrt的返回值类型是double型,你输出的时候用%d当然结果是错的了,可以试试类型转换,把最后一个printf语句改成如下:printf("%d\n",(int)sqrt(n));
因为sqrt的返回值不是整形的
include<math.h> include<stdio.h> define N 101 void main(){ int i,j,line,a[N];for(i=2;i<N;i++)a[i]=i;for(i=2;i<sqrt(N);i++) //N如果能被某数a整数,则a的平方小于N;否则必然存在一个b,使得a*b=N,且b的平方小于N.所以只需测试2到sqrt(N)即可知道是否有一个数...