GCD: 最大公约数,能被m,n整数整除的最大的整数。
貌似很早的就有了欧几里得的辗转相除法法
GCD(x, y) = GCD(x, x%y)
x = k*y + b若d是x, y的最大公约数,那么d一定能被b整除,且d是x和b的最大公约数,b为x%y
代码如下:
|
|
在《编程之美》书中有对时间上的优化:
- 取模运算含有除法,比较耗时
- 大整数下该如何优化
GCD: 最大公约数,能被m,n整数整除的最大的整数。
貌似很早的就有了欧几里得的辗转相除法法
GCD(x, y) = GCD(x, x%y)
x = k*y + b若d是x, y的最大公约数,那么d一定能被b整除,且d是x和b的最大公约数,b为x%y
代码如下:
|
|
在《编程之美》书中有对时间上的优化: