#P03045. 更相减损术
更相减损术
题目背景
我国古代《九章算术》中记载有使用 更相减损术 计算两个正整数的最大公约数,其方法为:
可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。
具体做法可以参考下面的示例:
不可半者(两个正整数不都是偶数):
以 和 为例,直接辗转相减,直至减数和差相等:
所以, 与 的最大公约数为 。
可半者(两个正整数都是偶数):
以 和 为例:
【第一步】先将 和 用 反复约简,直至不都是偶数,约数最后为 (用 约简了三次),约简后两数是 和 ;
【第二步】分别将两个约简后的数用“不可半者”的处理方法辗转相减,直至减数和差相等:
【第三步】求差和约数的乘积:
所以, 与 的最大公约数为 。
题目描述
对于提供的两个正整数,用“更相减损术”计算它们的最大公约数,同时记录处理次数。
输入格式
两个正整数,中间用一个空格隔开。
输出格式
两行,第一行是输入的两个正整数的最大公约数,第二行是用“更相减损术”计算它们的最大公约数的过程中“折半”和“辗转相减”的处理次数。
输入输出样例
168 120
24
7
说明/提示
👀️ 对于 的数据,输入的两个正整数均不超过 。
👀️ 对于样例,将 和 用 反复约简,用 约简了三次,“折半”了 次;然后用“不可半者”的处理方法辗转相减,直至减数和差相等,做了四次减法,“辗转相减”了 次:一共处理了 次。