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,ab)

然后就是高精度乘低精, 高精除低精,高精减高精。注意不要用递归,用循环。

代码不上,太菜了,没写。

以上是关于P2152 [SDOI2009]SuperGCD(模拟)的主要内容,如果未能解决你的问题,请参考以下文章

? P2152 [SDOI2009]SuperGCD (luogu)

[SDOI2009]SuperGCD

BZOJ 1876: [SDOI2009]SuperGCD

bzoj1876 [SDOI2009]SuperGCD

BZOJ1876: [SDOI2009]SuperGCD

[SDOI2009]SuperGCD