- Description
任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couple number。你的工作就是判断一个数N是不是Couple number。
- Input
仅一行,两个长整型范围内的整数n1和n2,之间用1个空格隔开。
- Output
输出在n1到n2范围内有多少个Couple number。
注意:包括n1和n2两个数,且n1<n2,n2 - n1 <= 10000000。
- Sample Input
1 10
- Sample Output
7
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
long n1,n2,count,k1,k2;
cin>>n1>>n2;
if(n1>=0||n2<=0)
{
if(n2<=0) {long t=n1;n1=-n2;n2=-t;}
k2=(n2+2)/4;
k1=(n1+2)/4;
if((n1+2)%4)
k1++;
count=n2-n1+1-(k2-k1+1);
}
else
count=n2-n1+1-(-n1+2)/4-(n2+2)/4;
cout<<count<<endl;
return 0;
}