279просмотров
7.4%от подписчиков
22 марта 2026 г.
statsScore: 307
Задача: 507. Perfect Number
Сложность: easy Совершенное число — это положительное целое число, которое равно сумме своих положительных делителей, исключая само число. Делитель целого числа x — это целое число, которое может делить x нацело. Дано целое число n, верните true, если n является совершенным числом, в противном случае верните false. Пример:
Input: num = 28
Output: true
Explanation: 28 = 1 + 2 + 4 + 7 + 14
1, 2, 4, 7, and 14 are all divisors of 28. 👨💻 Алгоритм: 1⃣Инициализация
Если число num меньше или равно 0, вернуть false. Инициализируйте переменную sum значением 0. 2⃣Поиск делителей и вычисление суммы
Переберите числа от 1 до квадратного корня num. Если число является делителем num, добавьте его к sum. Если делитель не равен квадратному корню num, добавьте к sum также результат деления num на делитель. 3⃣Проверка на совершенное число
Вычтите num из sum. Если результат равен num, вернуть true, иначе вернуть false. 😎 Решение:
func checkPerfectNumber(num int) bool { if num <= 0 { return false } sum := 0 for i := 1; ii <= num; i++ { if num%i == 0 { sum += i if ii != num { sum += num / i } } } return sum-num == num
} Ставь 👍 и забирай 📚 Базу знаний