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:
while True:
n = int(input('Введите число: '))
if n > 0:
print(n * n)
break
else:
print('Ошибка. Введено неправильное число')
Pascal:
var
n: integer;
begin
while True do begin
write('n = '); readln(n);
if n > 0 then begin
writeln(n * n);
break
end
else writeln('Ошибка. Введено неправильное число');
end;
end.