Как найти дружественные числа в 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
в соответствии с вашими требованиями.
Когда вы запустите этот код, он выведет все найденные дружественные числа.