题解:
这个题目其实还有另外一种解法,也是参考了网上的想法,感觉这种方法非常神奇。
就是说这个其实只第一个和最后一个都进行开平方再向下取整,假设f(x)=x²(x>0),这个函数在x大于0的时候满足单调递增,所以说开根以后完全平方数是一一对应的,假设a=2,b=9,这里面的完全平方数是4,9,开根以后相减答案是2。
但是这里需要特殊考虑另外一个问题,也就是当a是完全平方数的时候,这个时候我们就需要sqrt(b)-sqrt(a)+1了
假设a=1,b=4,完全平方数是2个,sqrt(4)-sqrt(1)+1=2

#pragma GCC optimize(3,"Ofast","inline")
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <math.h>
#include <string>
#include <list>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#define maxn  1000000
const int MaxN = 0x3f3f3f3f;
const int MinN = 0xc0c0c00c;
typedef long long ll;
const int mod = 1e9 + 7;
using namespace std;
bool judge(int x){
    if((int)sqrt(x)*(int)sqrt(x)==x) return true;
    return false;
}

int main()
{
    int n;
    cin>>n;
    while(n--){
        int x,y;
        scanf("%d%d",&x,&y);
        if(judge(x)){
            cout<<(int)sqrt(y)-(int)sqrt(x)+1<<endl;
            continue;
        }
        cout<<(int)sqrt(y)-(int)sqrt(x)<<endl;
    }
    return 0;
}