Предмет: Информатика, автор: Blackgirl25

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


Входные данные

Входная строка содержит натуральное число N .


Выходные данные

Если число N – совершенное, программа должна вывести в одну строчку через пробел все делители этого числа, меньшие N . Если число несовершенное, программа должна вывести 0.


Примеры
Входные данные
28
Выходные данные
1 2 4 7 14
Входные данные
29
Выходные данные
0
П.С. ПИТОН!!!!!!!!!!!!!

Ответы

Автор ответа: KnowsUser1
1

Ответ:

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()

Объяснение:

На случай, если сайт сломает табуляции в коде (А он их сломает), ниже представлен скриншот оригинала кода. Программа протестирована.

Приложения:
Похожие вопросы
Предмет: Биология, автор: kalnaasveta