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()
Объяснение:
На случай, если сайт сломает табуляции в коде (А он их сломает), ниже представлен скриншот оригинала кода. Программа протестирована.
program Picture;
uses Graph;
const
PathToDriver = 'D:\BP\bgi'; {подставьте свой путь к каталогу с файлами *.bgi}
var Gd,Gm : Integer;
begin
DetectGraph(Gd, Gm); {определим драйвер и режим}
InitGraph(Gd, Gm, PathToDriver); {проинициализируем графику}
if GraphResult <> grok then Halt(1); {если ошибка, завершим работу}
SetViewPort(0,0,639,349,ClipOn); {установим область рисования}
ClearViewPort; {очистим область рисования}
{для рисования используем следующие процедуры}
{Circle(X,Y,R) - рисует окружность}
{MoveTo(X,Y) - перемещает указатель в заданную точку}
{LineTo(X,Y) - проводит линию от указателя до заданной точки,}
{ указатель перемещает в конец линии}
{Rectangle(X1,Y1,X2,Y2) - рисует прямоугольник}
{PutPixel(X,Y,Color) - ставит точку в позиции с заданным цветом}
{человечек}
Circle(170, 225, 5);
MoveTo(170, 230);
LineTo(170, 260);
MoveTo(160, 240);
LineTo(170, 250);
LineTo(180, 240);
MoveTo(160, 270);
LineTo(170, 260);
LineTo(180, 270);
{домик}
MoveTo(230, 270);
LineTo(230, 320);
LineTo(290, 320);
LineTo(290, 270);
LineTo(260, 220);
LineTo(230, 270);
LineTo(290, 270);
MoveTo(250, 320);
LineTo(250, 290);
LineTo(270, 290);
LineTo(270, 320);
PutPixel(265, 305, White);
{дерево}
Circle(345, 175, 45);
Rectangle(340, 220, 350, 320);
ReadLn; {задердка для просмотра}
CloseGraph; {выход из графического режима}
end.
нач
вещ а,б,с,мин
вывод "Введите результат первого "
ввод а
мин:=а
вывод "Введите результат второго "
ввод б
если мин>б то мин:=б все
вывод "Введите результат третьего "
ввод с
если мин>с то мин:=с все
вывод "Результат победителя заплыва: ",мин
кон