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 z3;
var x1,x2,x3,y1,y2,y3,ac,ab,bc,a1,b1:real;f,f1:text;
begin
assign (f, 'z1.dat');
rewrite(f);
readln(x1,y1);
readln(x2,y2);
readln(x3,y3);
writeln(f,x1,y1);
writeln(f,x2,y2);
writeln(f,x3,y3);
close(f);
ac:=sqr(x1-x3)+sqr(y1-y3);
ab:=sqr(x2-x1)+sqr(y2-y1);
bc:=sqr(x3-x2)+sqr(y3-y2);
b1:=(ab+bc-ac)/(2*sqrt(ab*bc));
a1:=(ac+ab-bc)/(2*sqrt(ac*ab));
if (a1 < 0) or (b1 < 0) then
begin
assign(f1, 'z1.rez');
rewrite(f1);
writeln('na prodolzenue');
writeln(f1,'na prodolzenue');close(f1)
end
else
begin
assign(f1, 'z1.rez');
rewrite(f1);
writeln ('na otrezke');
writeln(f1,'na otrezke');
close(f1)
end
end.