Как найти дружественные числа в Python? 🧮💻

Дружественные числа в Python можно найти следующим образом:


def sum_of_divisors(n):
    total = 0
    for i in range(1, n):
        if n % i == 0:
            total += i
    return total

def are_amicable_numbers(a, b):
    return sum_of_divisors(a) == b and sum_of_divisors(b) == a

# Пример использования функции:
num1 = 220
num2 = 284
if are_amicable_numbers(num1, num2):
    print(f"{num1} и {num2} - дружественные числа")
else:
    print(f"{num1} и {num2} - не дружественные числа")
    

В функции `sum_of_divisors` мы находим сумму делителей числа `n`. Затем, с помощью функции `are_amicable_numbers`, мы проверяем, являются ли числа `a` и `b` дружественными.

Для конкретных значений чисел `num1` и `num2` мы выводим соответствующее сообщение, указывая, являются ли они дружественными или нет.

Детальный ответ

Как найти дружественные числа в Python?

Дружественные числа - это пары натуральных чисел, для которых сумма всех делителей одного числа равна другому числу, и наоборот. Например, пара дружественных чисел - (220, 284), так как сумма всех делителей 220 равна 284, а сумма всех делителей 284 равна 220.

Давайте рассмотрим, как можно найти дружественные числа в Python.


def get_divisors_sum(num):
    divisors_sum = 0
    for i in range(1, num):
        if num % i == 0:
            divisors_sum += i
    return divisors_sum

def find_amicable_numbers(start, end):
    amicable_numbers = []
    for num1 in range(start, end + 1):
        num2 = get_divisors_sum(num1)
        if num2 > num1 and get_divisors_sum(num2) == num1:
            amicable_numbers.append((num1, num2))
    return amicable_numbers

start_num = 1
end_num = 10000
amicable_nums = find_amicable_numbers(start_num, end_num)
for pair in amicable_nums:
    print(f"Дружественные числа: {pair[0]}, {pair[1]}")
    

В этом примере, мы создали две функции. get_divisors_sum(num) вычисляет сумму всех делителей заданного числа num. Функция find_amicable_numbers(start, end) находит все дружественные числа в диапазоне от start до end.

Затем мы определяем начальное и конечное число для поиска дружественных чисел и вызываем функцию find_amicable_numbers(start_num, end_num). Результатом будет список пар дружественных чисел. Мы выводим каждую пару в формате "Дружественные числа: num1, num2".

Вы можете изменить значения start_num и end_num в соответствии с вашими требованиями.

Когда вы запустите этот код, он выведет все найденные дружественные числа.

Видео по теме

Проверка простоты числа перебором делителей. Решение задачи на Python

21 Цикл while. Нахождение всех делителей числа Python

Решето Эратосфена - алгоритм определения простых чисел. Решение задачи на Python

Похожие статьи:

🔍 Как найти произведение всех элементов массива python?

🔥Как сделать верхний регистр в Python: простые способы и примеры

Что делает функция input в питоне? 🤔🔍

Как найти дружественные числа в Python? 🧮💻

Что значит join в Python? 🤔

🔧 Как установить Питон: Пошаговое руководство для начинающих

Как посмотреть функции библиотеки Python? 😎