Задача: Идеальное число

Задача: Идеальное число

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
}




Report Page