
ПОМОГИТЕ ПОЖАЛУЙСТА Совершенным называется число, равное сумме всех своих делителей, меньших его
самого (например, число 6=1+2+3). Напишите программу, которая вводит натуральное число N и определяет, является ли число N совершенным. Входные данные Входная строка содержит натуральное число N . Выходные данные Если число N – совершенное, программа должна вывести в одну строчку через пробел все делители этого числа, меньшие N . Если число несовершенное, программа должна вывести 0. Примеры Входные данные 28 Выходные данные 1 2 4 7 14 Входные данные 29 Выходные данные 0 П.С. ПИТОН!!!!!!!!!!!!!

Ответы на вопрос

Ответ:
def check_perfect(number:int, dividers = []):
for i in range(1, number):
if number%i == 0:
dividers.append(i)
if sum(dividers) == number:
return 1
def get_div(num, div = []):
for i in range(1, num):
if num%i == 0:
div.append(i)
return div
def main():
number = int(input())
if check_perfect(number):
print(' '.join(str(num) for num in get_div(number)))
else:
print(0)
if __name__ == '__main__':
main()
Объяснение:
На случай, если сайт сломает табуляции в коде (А он их сломает), ниже представлен скриншот оригинала кода. Программа протестирована.




Конечно, помогу! Ниже приведена программа на Python, которая определяет, является ли число N совершенным, и выводит все его делители, меньшие N, или 0 в случае несовершенного числа.
pythondef find_divisors(n):
divisors = []
for i in range(1, n):
if n % i == 0:
divisors.append(i)
return divisors
def is_perfect_number(n):
divisors = find_divisors(n)
if sum(divisors) == n:
return divisors
else:
return [0]
# Ввод числа N
try:
N = int(input("Введите натуральное число N: "))
if N <= 0:
raise ValueError()
except ValueError:
print("Ошибка: введите корректное натуральное число.")
else:
result = is_perfect_number(N)
print(*result)
Программа спрашивает у пользователя входное натуральное число N и затем вызывает функцию is_perfect_number
для определения, является ли число совершенным. Если число совершенное, программа выводит все его делители, меньшие N, разделенные пробелами. В противном случае выводится только 0.
Например, для входных данных 28
программа выведет 1 2 4 7 14
, а для входных данных 29
программа выведет 0
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili