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