数学上,若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。
计算a到b之间所有完全平方数的和。
输入一个正整数n,表示案例的数量。
每组案例由2个整数a和b组成。(-900000000<=a<=b<=900000000)
输出针对每组案例,输出一个长整数(long long int),表示a到b之间(包含a和b)所有完全平方数的和。
每组案例输出完都要换行。
样例输入 复制样例2
4 10
-1 5
样例输出13
5
HINT第一组样例中,4到10之间的完全平方数有4、9,总和是13。
第二组样例中,-1到5之间的完全平方数有0、1、4,总和是5。
解:
#include<iostream> #include<cmath> using namespace std; int main() { long long int n,a,b,sum; cin>>n; for(int i=1;i<=n;i++) { sum=0; long long int x,y; cin>>a>>b; x=sqrt(a); y=sqrt(b); if((a<=0)&&(b<=0)) { cout<<"0"<<endl; } else { if(a<=0) { for(int j=0;j<=y;j++) { sum=sum+j*j; } } else { if(x*x!=a) { for(int j=x+1;j<=y;j++) { sum=sum+j*j; } } else { for(int j=x;j<=y;j++) { sum=sum+j*j; } } } cout<<sum<<endl; } } return 0; }
