#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
long long mySqrt(long long n){
long long r = max((long long)sqrt(n) - 5, 0LL);
while((r + 1) * (r + 1) <= n){
r++;
}
return r;
}
long long count(long long n){
if(n < 6) {
return 0;
}
long long result = 0;
result += n / 2 - 2;
long long r = mySqrt(n);
if(r > 2) {
if(r & 1) {
result++;
}
}
return result;
}
int main(){
int testCount;
cin >> testCount;
while(testCount > 0) {
testCount--;
long long a, b;
cin >> a >> b;
cout << count(b) - count(a-1) << endl;
}
return 0;
}
2012 天津 1002 Number (出自 ftiasch,我还不懂)
最新推荐文章于 2021-11-26 10:55:02 发布
本文介绍了一个使用C++实现的算法优化案例,该算法通过计算特定范围内满足条件的数的数量来解决问题。文中详细展示了如何利用数学函数和循环来提高算法效率,并通过两个核心函数`mySqrt`和`count`实现了算法的核心逻辑。
250

被折叠的 条评论
为什么被折叠?



