完全平方数
完全平方数
https://ac.nowcoder.com/acm/problem/14733
链接:https://ac.nowcoder.com/acm/problem/14733
来源:牛客网
题目描述
多次查询[l,r]范围内的完全平方数个数 定义整数x为完全平方数当且仅当可以找到整数y使得yy=x
题目虽然标的二分吧,但是还是怎么简单怎么来;可以看出,对于lr之间的完全平方数,可以由1l-1之间的完全平方数h个,1r个完全平方数k个,那么lr之间有k-h个完全平方数;l等于0的时候特判;而对于一个数x,完全平方数个数为sqrt(x)个,因为若m大于sqrt(x),则mm>x;
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
#define ll long long
int main()
{
ll l,r;
ll t;
cin>>t;
while(t--){
cin>>l>>r;
ll ans=0,ans1=0;
if(l==0) cout<<(ll)sqrt(r)+1<<endl;
else cout<<(ll)sqrt(r)-(ll)sqrt(l-1)<<endl;
}
return 0;
}
