#P03045. 更相减损术

更相减损术

题目背景

我国古代《九章算术》中记载有使用 更相减损术 计算两个正整数的最大公约数,其方法为:

可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。

具体做法可以参考下面的示例:

  • 不可半者(两个正整数不都是偶数):

15154242 为例,直接辗转相减,直至减数和差相等:

  1. 4215=2742-15=27
  2. 2715=1227-15=12
  3. 1512=315-12=3
  4. 123=912-3=9
  5. 93=69-3=6
  6. 63=36-3=3

所以,15154242 的最大公约数为 33

  • 可半者(两个正整数都是偶数):

168168120120 为例:

【第一步】先将 16816812012022 反复约简,直至不都是偶数,约数最后为 88(用 22 约简了三次),约简后两数是 21211515

【第二步】分别将两个约简后的数用“不可半者”的处理方法辗转相减,直至减数和差相等:

  1. 2115=621-15=6
  2. 156=915-6=9
  3. 96=39-6=3
  4. 63=36-3=3

【第三步】求差和约数的乘积:3×8=243×8=24

所以,168168120120 的最大公约数为 2424

题目描述

对于提供的两个正整数,用“更相减损术”计算它们的最大公约数,同时记录处理次数。

输入格式

两个正整数,中间用一个空格隔开。

输出格式

两行,第一行是输入的两个正整数的最大公约数,第二行是用“更相减损术”计算它们的最大公约数的过程中“折半”和“辗转相减”的处理次数。

输入输出样例

168 120
24
7

说明/提示

👀️ 对于 100%100\% 的数据,输入的两个正整数均不超过 10910^9

👀️ 对于样例,将 16816812012022 反复约简,用 22 约简了三次,“折半”了 33 次;然后用“不可半者”的处理方法辗转相减,直至减数和差相等,做了四次减法,“辗转相减”了 44 次:一共处理了 77 次。