题目链接地址:http://acm.hdu.edu.cn/showproblem.php?pid=4279
题解:本题目有一定的规律,除了2外和偶数平方的偶数和除了1以外的奇数的平方都是符合规则的数,从中筛选就可以了。
#include <iostream>
#include <cmath>
using namespace std;
long long Text(long long m)
{
if(m<5) return 0;
long long sum=0;
long long mid;
mid=sqrt(m*1.0);
sum+=(m/2-1); //求出所有相关的偶数
if(!(mid%2)) sum-=1;//
return sum;
}
int main()
{
int case1;
long long m,n;
long long re;
cin>>case1;
long long max;
long long min;
while(case1--)
{
cin>>m>>n;
if(m<n)
{
max=n;
min=m;
}
else
{
min=n;
max=m;
}
min=min-1;//求出1——min-1内的数,再求出1——max以内的数做差就可以啦。
re=Text(max)-Text(min);
cout<<re<<endl;
}
}