给定a,b,设G=gcd(a,b),于是有a=A*G,b=B*G(1<=A,B,gcd(A,B)=1)
对于a的多次加可以看成K*a(1<=k),转化成(K*a)%b的所有结果能否表示成0..b-1中的所有数,
假(K*a)%b=M,M=K*a-W*b(W为使M>0的最大整数),M=K*A*G-W*B*G M%G==0,
既结果是G的倍数,如果想取得0..b-1中的所有数,
那么必须G=1才可能..
这算法牛X。。。
#include"stdio.h"
int main() 

long m,n,k,i; 
while(scanf("%ld%ld",&m,&n)!=-1)
{ printf("%10ld%10ld    ",m,n);
    k
=1;
for(i=2;i<=(m>n?n:m);i++

if(m%i==0&&n%i==0
k
=i; 
}

 
if(k==1)
     printf(
"Good Choice\n\n");
        
else
            printf(
"Bad Choice\n\n");

}

}