题目链接地址: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; } }