链接:https://ac.nowcoder.com/acm/problem/14733
来源:牛客网

题目描述
多次查询[l,r]范围内的完全平方数个数

定义整数x为完全平方数当且仅当可以找到整数y使得y*y=x

输入描述:
第一行一个数n表示查询次数
之后n行每行两个数l,r
输出描述:
对于每个查询,输出一个数表示答案
[1,n]的完全平方数是sqrt(n),即[r,n]为(int)sqrt(n)-(int)sqrt(r-1);注意前面都要加int,因为sqrt返回的是浮点数,会使结构出现误差
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
long long l,r,sum=0;
cin>>l>>r;
if(l==0)
sum=(int)sqrt(r)+1;
else
sum=(int)sqrt(r)-(int)sqrt(l-1);
cout<<sum<<endl;
}
return 0;
}</cmath></iostream>