2.(进阶题目)请输入a,b两个正整数,用欧几里德算法求这两个数的最大公约数。 (欧几
时间: 2023-11-12 18:02:33 浏览: 176
欧几里德算法求最大公约数——C++代码
欧几里德算法(Euclidean algorithm)是一种用于计算两个正整数的最大公约数的方法。
首先,我们输入两个正整数a和b。
接下来,我们用辗转相除法来求最大公约数。具体步骤如下:
1. 若b等于0,则最大公约数就是a,算法结束。
2. 若b不等于0,则进行下一步。
3. 将a除以b,得到商q和余数r。
4. 将b赋值为r,a赋值为b,继续下一轮循环。
重复上述步骤,直到余数r等于0。此时,最大公约数就是b。
下面是一个示例:
输入a=42,b=30
第一轮循环:
a除以b,得商q=1,余数r=12
将b赋值为r,得到新的a=30,b=12
第二轮循环:
a除以b,得商q=2,余数r=6
将b赋值为r,得到新的a=12,b=6
第三轮循环:
a除以b,得商q=2,余数r=0
此时余数为0,所以最大公约数为b=6。
因此,对于输入的a=42和b=30,它们的最大公约数为6。
阅读全文