就1和3对了,其它T了。
#include<bits/stdc++.h>
using namespace std;
long long g;
long long h;
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int dg(long long a,long long b,int c)
{
long long a1,b1;
int i;
int flag;
if(a>=b) flag=gcd(a,b);
else flag=gcd(b,a);
if(flag==g)
{
printf("%ld %ld\n",a,b);
return 1;
}
flag=0;
if(c==1)
{
a1=b;
b1=a;
if((a1==a)&&(b1==b)) return 0;
if(a1>=b1) return 0;
flag=dg(a1,b1,2);
if(flag==1) return 1;
}
else if(c==2)
{
b1=b;
if(b1==1) return 0;
for(i=a*b1;i<(a*b1+b1);i++)
{
a1=i;
if(b1>a1) continue;
flag=dg(a1,b1,1);
if(flag==1) return 1;
flag=dg(a1,b1,2);
if(flag==1) return 1;
}
}
return 0;
}
int main()
{
//freopen("0.in","r",stdin);
//freopen("0.out","w",stdout);
int i;
int t;
int tmp;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d%d",&g,&h);
tmp=dg(h,1,1);
if(tmp==1) continue;
tmp=dg(h,1,2);
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
谢谢各位巨佬