BZOJ 1876: [SDOI2009]SuperGCD

SDOI2009 SuperGCD算法解析
本文介绍了解决SDOI2009竞赛中SuperGCD问题的算法实现,通过使用高精度计算的方法求解两个巨大数值之间的最大公约数(GCD),并提供了Python代码示例。

1876: [SDOI2009]SuperGCD

Time Limit: 4 Sec  Memory Limit: 64 MB
Submit: 2999  Solved: 1011
[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

[ Submit][ Status][ Discuss]

 

分析

高精度GCD

 

代码

 1 def math_gcd(a, b) :
 2     while b != 0 :
 3         t = a
 4         a = b
 5         b = t % a
 6     return a
 7 
 8 
 9 def main() :
10     number_a = int(raw_input())
11     number_b = int(raw_input())
12     print math_gcd(number_a, number_b)
13 
14 
15 if __name__ == "__main__" : main()
BZOJ_1876.py

 

@Author: YouSiki

转载于:https://www.cnblogs.com/yousiki/p/6106815.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值