最大公约数,最大公倍数

    func gcd(a, b int) int {
        for b != 0 {
            tmp := b
            b = a%b
            a = tmp
        }
        return a
    }

    // a%b a除以b的余数
    // a<b 余数为a
    func lcm(a,b int) int {
        return a*b/gcd(a,b)
    }
    func ngcd(nums []int) int {
        size := len(nums)
        if size == 0 {
            panic("empty nums")
        }
        if size == 1{
            return nums[0]
        }
        x := nums[0]
        for i:=1; i<size; i++ {
            x = gcd(x, nums[i])
        }
        return x
    }
    func nlcm(nums []int) int {
        size := len(nums)
        if size == 0 {
            panic("empty nums")
        }
        if size == 1{
            return nums[0]
        }
        x := nums[0]
        for i:=1; i<size; i++ {
            x = (x * nums[i]) / gcd(x, nums[i])
        }
        return x
    }