go 语言实践:欧几里得算法-求最大公约数
文章目录
- go语言实现欧几里得算法
- 求2个数的最大公约数
- go语言实现欧几里得算法
go语言实现欧几里得算法
求2个数的最大公约数
辗转相除法
大数对小数求余
余数不为零时,小数对余数求余
余数为零时,小数就是俩个数的最大公约数
package main
import "fmt"
func divisor(min, max int) (maxDivisor int) { //用大数对小数取余 complement := max % min //余数不为零,小数作为大数,将余数作为小数,大数对小数递归求余 if complement != 0 { maxDivisor = divisor(complement, min) } else { //当余数为零,小数就是最大公约数 maxDivisor = min } return } func main() { fmt.Println(divisor(64, 192)) }
结果:
64