您的位置:首页 > 其它

【BZOJ 1876】 [SDOI2009]SuperGCD

2015-04-19 09:03 435 查看

1876: [SDOI2009]SuperGCD

Time Limit: 4 Sec Memory Limit: 64 MB

Submit: 1750 Solved: 560

[Submit][Status][Discuss]

Description

Sheng bill有着惊人的心算能力,甚至能用大脑计算出两个巨大的数的GCD(最大公约 数)!因此他经常和别人比赛计算GCD。有一天Sheng bill很嚣张地找到了你,并要求和你比 赛,但是输给Sheng bill岂不是很丢脸!所以你决定写一个程序来教训他。

Input

共两行: 第一行:一个数A。 第二行:一个数B。

Output

一行,表示A和B的最大公约数。

Sample Input

12

54

Sample Output

6

HINT

对于20%的数据,0 < A , B ≤ 10 ^ 18。

对于100%的数据,0 < A , B ≤ 10 ^ 10000。

Source

Day1

更相减损术+高精度/python

高精度模高精度很难写,所以这题最好用更相减损术:

若A,B是偶数,Gcd(A,B)=2*Gcd(A/2,B/2)

若A是奇数,B是偶数,Gcd(A,B)=Gcd(A,B/2)

若A是奇数,B是奇数,Gcd(A,B)=Gcd(A-B,B)

我是用python水过得。。

a,b=input(),input()
c=a%b
while c!=0L:
a=b
b=c
c=a%b
print b




注意:如果直接写递归版的gcd就会因为爆栈而WA
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: