tips
最大公约数,最大公倍数
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
}