自己造的数据都能过,无法找出错误,求教了
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int ggs(int k)
{
for(int i=1;i<=sqrt((k-1)/2);i++)
{
if(((i+1)*i*2+1)==k)
return i;
}
return 0;
}
int main()
{
int a,b,ans,k;
cin>>a>>b;
int g=gcd(a,b),bs1=a/g,bs2=b/g;
for(int i=2;i<=g;i++)
{
if(g%i==0&&ggs(i))
{
ans=ggs(i);
k=g/i;
goto label;
}
}
cout<<"NO";return 0;
label:cout<<"YES\n0 0\n";
cout<<-bs1*k*(ans*2+1)<<" "<<-bs1*k*((ans+1)*ans*2)<<endl;
cout<<bs2*k*((ans+1)*ans*2)<<" "<<bs2*k*(ans*2+1);
return 0;
}