Какую логическую функцию нужно написать на Python, чтобы определить, является ли заданное число совершенным (равно

  • 26
Какую логическую функцию нужно написать на Python, чтобы определить, является ли заданное число совершенным (равно ли оно сумме своих делителей, меньших самого числа)? Например, пользователь вводит натуральное число: 28. Функция должна вернуть, что число 28 является совершенным. Или, например, пользователь вводит натуральное число: 29. Функция должна вернуть, что число 29 не является совершенным.
Leonid_4544
10
Конечно! Для определения, является ли заданное число совершенным, нам понадобится написать функцию на языке Python. Давайте разработаем такую функцию.

Сначала нам понадобится определить функцию, которая будет находить сумму всех делителей числа, меньших самого числа. Мы можем использовать цикл для проверки каждого числа от 1 до (n-1), где n – это заданное число.

Вот как будет выглядеть функция для нахождения суммы делителей:

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


Здесь мы используем переменную `sum` для хранения суммы делителей. В цикле мы проверяем, делится ли число `n` на число `i` без остатка, и если делится, то добавляем `i` к сумме.

Теперь, имея функцию `sum_of_divisors`, мы можем определить функцию `is_perfect_number`, которая будет вызывать предыдущую функцию и сравнивать сумму делителей с заданным числом.

python
def is_perfect_number(n):
divisors_sum = sum_of_divisors(n)
if divisors_sum == n:
return True
else:
return False


В этой функции мы вызываем `sum_of_divisors` и сохраняем ее результат в переменную `divisors_sum`. Затем мы сравниваем `divisors_sum` с числом `n` и возвращаем `True`, если они равны, и `False` в противном случае.

Теперь у нас есть функция, которая может определять, является ли число совершенным или нет. Чтобы проверить ее работу, вы можете вызвать функцию `is_perfect_number` и передать в нее заданное число.

Вот пример, как использовать эту функцию для ввода числа 28:

python
number = int(input("Введите натуральное число: "))
result = is_perfect_number(number)
if result:
print("Число", number, "является совершенным.")
else:
print("Число", number, "не является совершенным.")


Теперь, если введенное число будет равно 28, вы увидите сообщение "Число 28 является совершенным". Если введенное число будет отличаться от этого, то вы увидите сообщение "Число 29 не является совершенным".

Надеюсь, что я смог помочь вам разработать функцию для определения совершенного числа. Если у вас остались какие-либо вопросы, пожалуйста, не стесняйтесь задавать их!