求两个数的最大公约数
法一:
两个数a、b,a%b得到c,再用b%c,得到d;
如果d=0,则c就是这两个数的最大公约数;
否则继续取模
int main(){
int a, b;
int c = 0;
scanf("%d%d", &a, &b);
printf("a=%d b=%d\n", a, b);
while (a%b != 0){
c = a%b;
a = b;
b = c;
}
printf("%d\n", c);
return 0;
}
运行截图:
法二:
int main()
{
int a, b, t, i;
scanf("%d%d", &a, &b);
t = 1;
for (i = 2; i <= a && i <= b; i++){
while (a%i == 0 && b%i == 0)
{
t = t*i;
a = a / i;
b = b / i;
}
}
printf("%d\n", t);
return 0;
}