給定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");

}
}