P2152 [SDOI2009]SuperGCD(模拟)
Posted Harris-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P2152 [SDOI2009]SuperGCD(模拟)相关的知识,希望对你有一定的参考价值。
P2152 [SDOI2009]SuperGCD(模拟)
高精度下求两数的 g c d gcd gcd。
人生苦短,我用python。
if __name__ == '__main__':
import math
print(math.gcd(int(input()),int(input())))
也可以用辗转相减法进行模拟。
优化一下:
g c d ( a , b ) gcd(a,b) gcd(a,b)
若 a , b a,b a,b都为偶数,则 g = 2 × g c d ( a 2 , b 2 ) g=2\\times gcd(\\dfrac{a}{2},\\dfrac{b}{2}) g=2×gcd(2a,2b)
若只有一个偶数,则 g = g c d ( a 2 , b ) g=gcd(\\dfrac{a}{2},b) g=gcd(2a,b)或 g c d ( a , b 2 ) gcd(a,\\dfrac{b}{2}) gcd(a,2b)
否则 g = g c d ( b , a − b ) g=gcd(b,a-b) g=gcd(b,a−b)
然后就是高精度乘低精, 高精除低精,高精减高精。注意不要用递归,用循环。
代码不上,太菜了,没写。
以上是关于P2152 [SDOI2009]SuperGCD(模拟)的主要内容,如果未能解决你的问题,请参考以下文章