Skip to content

go 语言实践:欧几里得算法-求最大公约数

  • 文章目录

    • go语言实现欧几里得算法
      • 求2个数的最大公约数
  • 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