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
【BZOJ 1876】 [SDOI2009]SuperGCD
原文地址:http://blog.csdn.net/regina8023/article/details/45126401