Введение
В этом проекте вы научитесь находить все совершенные числа в диапазоне от 1 до 1000. Совершенные числа - это положительные целые числа, которые равны сумме своих собственных делителей, исключая само число.
👀 Предварительный просмотр
## если диапазон от 1 до 10, то вывод должен быть таким:
Совершенные числа: 6 ## 6 = 1 + 2 + 3
🎯 Задачи
В этом проекте вы научитесь:
- Как реализовать функцию
perfect_numberдля нахождения всех совершенных чисел в заданном диапазоне - Как протестировать функцию
perfect_numberи проверить правильность результатов - Как оптимизировать и улучшить функцию
perfect_numberдля лучшей производительности и читаемости
🏆 Достижения
После завершения этого проекта вы сможете:
- Разобраться в концепции совершенных чисел и их математических свойствах
- Написать функцию для нахождения всех совершенных чисел в заданном диапазоне
- Протестировать и отладить свой код, чтобы убедиться, что он работает правильно
- Оптимизировать свой код для лучшей эффективности и читаемости
- Применить свои навыки решения задач для улучшения своих навыков программирования
Разобраться с задачей
В этом шаге вы узнаете о концепции совершенных чисел и требованиях к проекту.
Совершенные числа - это положительные целые числа, которые равны сумме своих собственных делителей, исключая само число. Например, делителями числа 6 являются 1, 2 и 3. Поскольку 6 = 1 + 2 + 3, 6 - совершенное число.
Цель этого проекта -:
- Завершить функцию
perfect_numberвperfect_number.pyдля нахождения всех совершенных чисел в диапазоне от 1 до 1000. - Вывести все найденные совершенные числа, разделяя их пробелом.
Реализовать функцию perfect_number
Откройте файл perfect_number.py и найдите функцию perfect_number. Эта функция отвечает за поиск всех совершенных чисел в диапазоне от 1 до 1000.
Вот исходный код, предоставленный:
def perfect_number():
"""
Найти все совершенные числа в диапазоне от 1 до 1000.
Возвращает:
list: Список совершенных чисел, найденных в диапазоне от 1 до 1000.
"""
result = []
for num in range(1, 1001):
factors = []
for i in range(1, num):
if num % i == 0:
factors.append(i)
if sum(factors) == num:
result.append(num)
return result
Рассмотрим код пошагово:
- Функция
perfect_numberопределена для поиска всех совершенных чисел в диапазоне от 1 до 1000. - Инициализируется пустой список
result, чтобы хранить совершенные числа. - Функция перебирает числа от 1 до 1000 (включительно).
- Для каждого числа функция находит его делители (за исключением самого числа) и добавляет их в список
factors. - Если сумма делителей равна числу, то число считается совершенным и добавляется в список
result. - Наконец, функция возвращает список
result, содержащий все найденные совершенные числа.
Тестировать функцию perfect_number
Для тестирования функции perfect_number добавьте следующий код в конец файла perfect_number.py:
if __name__ == "__main__":
result = perfect_number()
print("Perfect numbers:", " ".join(map(str, result)))
Этот код вызовет функцию perfect_number и выведет все найденные совершенные числа, разделенные пробелом.
Сохраните файл perfect_number.py и запустите скрипт:
python perfect_number.py
Вывод должен быть таким:
Perfect numbers: 6 28 496
Это означает, что функция perfect_number работает правильно и нашла совершенные числа в диапазоне от 1 до 1000.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более лабораторных работах в LabEx, чтобы улучшить свои навыки.



