先看代码
int main()
{
int m = 0;
int n = 0;
//输入
scanf("%d %d", &m, &n);//18 24
int k = 0;
while (k=m % n)
{
m = n;
n = k;
}
printf("%d\n", n);
return 0;
}
先存入两个整数,假如m是18,n是24.
m | n | k |
18 | 24 | 18 |
24 | 18 | 6 |
while (k=m % n)
{
m = n;
n = k;
}
将n的值赋给m,将k的值赋给n。这样每次就可以将余数赋给除数,此循环当m被n整出时就结束了,所以输出的就是n,也是两个数的最大公约数。