求教最大公约数10^1000以内的PASCAL算法

[复制链接]
查看11 | 回复3 | 2011-8-4 21:06:33 | 显示全部楼层 |阅读模式
最后是程序
难道不会超时吗?(最好贴代码)

回复

使用道具 举报

千问 | 2011-8-4 21:06:33 | 显示全部楼层
求最大公约数,自然想到用辗转相除法。但是高精度取模不是很好写,于是转用二进制法求最大公约数。gcd(a,b)=a
a=b
2×gcd(a/2,b/2)
a,b均为偶数
gcd(a/2,b)
a为偶数,b为奇数
gcd(a,b/2)
b为偶数,a为奇数
gcd(b,a-b)
a,b均为奇数且a>b
gcd(a,b-a)
...
回复

使用道具 举报

千问 | 2011-8-4 21:06:33 | 显示全部楼层
高精度取模其实只需要分离最后几位就可以...
回复

使用道具 举报

千问 | 2011-8-4 21:06:33 | 显示全部楼层
用字符串读入数据转换成数组辗转相除法求公约数...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行