目录
前言
这是一篇关于关于编程题碰到约分,可以使用辗转相除法或者直接使用内置函数__gcd(),顺便可以看一下最小公倍数。
一、辗转相除法
1、什么是辗转相除法?
求最大公约数( a , b )其中a > b
a ➗ b = q ······ r
a = b × q + r r = a - b × q
定理: ( a , b ) = ( b , r ) // a 与 b 的最大公约数等于 b 和 r 的最大公约数
假设 ( a , b )= d
a = d × m
b = d × n
r = a - b × q
= d × m - d × n × q
= d × ( m - n × q )
因为 r 是 d 的( m - n × q )倍,b 是 d 的 n 倍
所以他们的最大公约数相同