题目大意
求两个个高精度数的gcd
题目解析
在学习gcd的时候,书上就记载了“更相减损术”这一方法
基于这种方法,我们进行优化,使得我们能快速求出两个大数的gcd
对于 (a,b) 的 (GCD(a, b)) 有
[1]. 若 (a) 为奇数,(b) 为偶数,(GCD(a, b) = GCD(a, b / 2))
表示 (b) 存在2这个因子而 (a) 不存在,则将 (b) 除以2,,不考虑因子2;
[2]. 若 (a) 为偶数,(b) 为奇数,(GCD(a, b) = GCD(a / 2, b))
表示 (a) 存在2这个因子而 (b) 不存在,则将 (a) 除以2,不考虑因子2;
[3]. 若 (a) 为偶数,(b) 为偶数,(GCD(a, b) = 2 * GCD(a / 2, b / 2))
表示 (a, b) 都存在2这个因子,则 (GCD(a, b)) 也存在因子2,则将当前答案乘以2,(a, b) 都除以2;
[4]. 若 (a) 为奇数,(b) 为奇数,(GCD(a, b) = GCD(a - b, b) (a ge b))