一.辗转相除法简介
辗转相除法又称欧几里得算法,两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。
二.使用示例
计算24与18的最大公约数
(1)24 / 18 = 1 余 6
(2)18 / 6 = 0 余 0
故24与18的最大公约数为6
三.代码实现
执行代码
#include <stdio.h>
int gcd(int a,int b)
{
int c = a % b;
while(c)
{
//更新被除数与除数
a = b;
b = c;
c = a % b;
}
return b;
}
int main()
{
int m,n;
scanf("%d%d", &m, &n);
int ret = gcd(m, n);//辗转相除法求最大公约数
printf("%d\n", ret);
return 0;
}
根据以上代码,当我们输入两个正整数就能得到其最大公约数了
运行结果