求最大公约数之穷举法
int a,b,c,gcd;
scanf("%d%d",&a,&b);
c = a<b?a:b;
int i=1;
for(i=c;i>=1;i--){
if(a%i==0 && b%i==0){
gcd=i;
printf("GCD=%d\n",gcd);
break;
}
}
return 0;
求最大公约数之更相减损术
int a,b,c,d,gcd;
scanf("%d%d",&a,&b);
if(a%2==0&&b%2==0){
c=a<b?a:b;
gcd=c/2;
printf("1\n%d",gcd);
}else{
while(a!=b){
d = a>b?b:a;
a = a>b?a-b:b-a;
b=d;
}
gcd = a;
printf("2\n%d",gcd);
}
return 0;
求最大公约数之辗转相除法
int a,b,c,d,gcd;
scanf("%d%d",&a,&b);
c = a<b?b%a:a%b;
d = a<b?a:b;
if(c==0){
gcd=a<b?a:b;
printf("gcd=%d\n",gcd);
}else{
while(c!=0){
int i;
i = c;
c=d%c;
d = i;
}
printf("gcd=%d",d);
}
return 0;
}