完全平方数的个数
时间限制:
6500 ms | 内存限制:
65535 KB
难度:
2
-
描述
-
给定整数区间[A,B]问其中有多少个完全平方数。
-
输入
- 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000。 输出
- 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数。 样例输入
-
1 1 1 2 3 10 3 3
样例输出
-
1 1 2 0
此题数字较大,要是一个一个的排查会超时。因此采取了用平方根之差近似求解,再排除误差。
#include<stdio.h>
#include<math.h>int main(){
int a,b,count;
while(~scanf("%d%d",&a,&b)){
count=0;
count=sqrt(b)-ceil(sqrt(a))+1;
//sqrt本身就是向下的;ceil函数(求不小于给定实数的最小整数),floor函数( 函数返回参数不大于给定数的最大整数)。
printf("%d\n",count);}
return 0;
}