Проект Поискатель Совершенных Чисел

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом проекте вы научитесь находить все совершенные числа в диапазоне от 1 до 1000. Совершенные числа - это положительные целые числа, которые равны сумме своих собственных делителей, исключая само число.

👀 Предварительный просмотр

## если диапазон от 1 до 10, то вывод должен быть таким:
Совершенные числа: 6  ## 6 = 1 + 2 + 3

🎯 Задачи

В этом проекте вы научитесь:

  • Как реализовать функцию perfect_number для нахождения всех совершенных чисел в заданном диапазоне
  • Как протестировать функцию perfect_number и проверить правильность результатов
  • Как оптимизировать и улучшить функцию perfect_number для лучшей производительности и читаемости

🏆 Достижения

После завершения этого проекта вы сможете:

  • Разобраться в концепции совершенных чисел и их математических свойствах
  • Написать функцию для нахождения всех совершенных чисел в заданном диапазоне
  • Протестировать и отладить свой код, чтобы убедиться, что он работает правильно
  • Оптимизировать свой код для лучшей эффективности и читаемости
  • Применить свои навыки решения задач для улучшения своих навыков программирования

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/arguments_return("Arguments and Return Values") subgraph Lab Skills python/python_shell -.-> lab-302754{{"Проект Поискатель Совершенных Чисел"}} python/conditional_statements -.-> lab-302754{{"Проект Поискатель Совершенных Чисел"}} python/for_loops -.-> lab-302754{{"Проект Поискатель Совершенных Чисел"}} python/lists -.-> lab-302754{{"Проект Поискатель Совершенных Чисел"}} python/function_definition -.-> lab-302754{{"Проект Поискатель Совершенных Чисел"}} python/arguments_return -.-> lab-302754{{"Проект Поискатель Совершенных Чисел"}} end

Разобраться с задачей

В этом шаге вы узнаете о концепции совершенных чисел и требованиях к проекту.

Совершенные числа - это положительные целые числа, которые равны сумме своих собственных делителей, исключая само число. Например, делителями числа 6 являются 1, 2 и 3. Поскольку 6 = 1 + 2 + 3, 6 - совершенное число.

Цель этого проекта -:

  1. Завершить функцию perfect_number в perfect_number.py для нахождения всех совершенных чисел в диапазоне от 1 до 1000.
  2. Вывести все найденные совершенные числа, разделяя их пробелом.

Реализовать функцию 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

Рассмотрим код пошагово:

  1. Функция perfect_number определена для поиска всех совершенных чисел в диапазоне от 1 до 1000.
  2. Инициализируется пустой список result, чтобы хранить совершенные числа.
  3. Функция перебирает числа от 1 до 1000 (включительно).
  4. Для каждого числа функция находит его делители (за исключением самого числа) и добавляет их в список factors.
  5. Если сумма делителей равна числу, то число считается совершенным и добавляется в список result.
  6. Наконец, функция возвращает список 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, чтобы улучшить свои навыки.