import java.util.Scanner;
class Number {
long l, r;
void SetNum(long n, long m)
{
l = n;
r = m;
}
long F(long n)
{
if(n <= (long)2)return 0;
else
{
long x;
if((long)Math.sqrt(n) % 2 == 1)x = 0;
else x = -1;
return (long) (n / 2 - 1 + x);
}
}
void Print()
{
System.out.println(F(r) - F(l - 1));
}
}
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
Number num = new Number();
long n;
n = cin.nextLong();
while(n > 0)
{
n--;
num.SetNum(cin.nextLong(), cin.nextLong());
num.Print();
}
cin.close();
}
}
详细证明:
https://blog.csdn.net/tclh123/article/details/7970545