https://www.luogu.org/problemnew/show/P1348
思路:拆成n=xy(x>=y)
設(shè)a+b=x菲驴,a-b=y則a=(x+y)/2,b=(x-y)/2
若n是couple數(shù)則一定要滿足x+y是偶數(shù),x-y是偶數(shù)
如果n為偶數(shù),一定可以拆成2k的形式甘有,如果k為偶數(shù)虚循,則為couple數(shù)猎物;k為奇數(shù)秆吵,k一定能拆成奇乘奇的形式淮椰,不管怎么搭配n一定是被拆成n=(2奇)(奇)=偶奇的形式(偶+奇)不可能整除,所以不是couple數(shù)
如果n為奇數(shù)纳寂,則一定能拆成1奇的形式实苞,(1+奇)肯定能被2整除,所以所有奇數(shù)都是couple數(shù)
代碼:
bool iscouple(long long n)
{
if(n<0) n=-n;
int sqr=(int)sqrt(1.0*n);
if(n==0||n%2==1||sqr*sqr==n) return true;
if(n%2==0)
{
if((n/2)%2==0)
return true;
else
return false;
}
}
int main()
{
long long a,b,cnt;
cin>>a>>b;
cnt=0;
for(int i=a;i<=b;i++)
{
if(iscouple(i))
cnt++;
}
cout<<cnt;
return 0;
}