393просмотров
5.8%от подписчиков
24 марта 2026 г.
statsScore: 432
Задача: 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. 😎 Решение: public boolean checkPerfectNumber(int num) { if (num <= 0) { return false; } int sum = 0; for (int i = 1; i i <= num; i++) { if (num % i == 0) { sum += i; if (i i != num) { sum += num / i; } } } return sum - num == num; }
} Ставь 👍 и забирай 📚 Базу знаний