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()
Объяснение:
На случай, если сайт сломает табуляции в коде (А он их сломает), ниже представлен скриншот оригинала кода. Программа протестирована.
---
Uses crt;
{описание переменных}
var a,b,c: array [1..20] of integer;
x,sum:integer;
begin
sum:=0; {обнуляем сумму}
for x:=1 to 20 do {включаем цикл ввода массивов}
begin
write('a[',x,']:'); {вывод текста на экран}
readln(a[x]); {ввод массива А}
write('b[',x,']:'); {вывод текста на экран}
readln(b[x]); {ввод массива В}
c[x]:=a[x]+b[x]; {формируем массив С}
if x mod 2=0 then
sum:=sum+c[x];
end;
writeln; {переводим указатель на новую строку}
for x:=1 to 20 do {цикл вывода массива С}
writeln('c[',x,']:',c[x]); {вывод текста на экран}
writeln('sum=',sum); {сумма четных элементов массива С}
end.
---
текст в фигурных скобках удалять не обязательно, он на код не влияет.