Задача: Идеальное число
https://t.me/Golang_googleУсловие: идеальное число - это положительное целое число, которое равно сумме делителей этого же числа, за исключением самого числа.
Необходимо проверить входное число на идеальность.
Пример:
Ввод: num = 28
Вывод: true
Объяснение: 28 = 1 + 2 + 4 + 7 + 14
Ввод: num = 7
Вывод: false
Решение:
Go
func checkPerfectNumber(num int) bool {
if num <= 1 {
return false
}
var sum int
for i, limit := 1, int(math.Sqrt(float64(num))); i <= limit; i++ {
if num%i == 0 {
if i == 1 {
sum += 1
} else if i == limit && limit*limit == num {
sum += limit
} else {
sum += i + num/i
}
}
}
return sum == num
}