максимум(X,X,X).
максимум(X,Y,X):- X>Y.
максимум(X,Y,Y):- X<Y.

гипотенуза(X,Y,Z):- number(X), number(Y), Z is sqrt(X**2 + Y**2).

мин_гип(A1,B1,A2,B2,Min):-
    гипотенуза(A1,B1,C1),
    гипотенуза(A2,B2,C2),
    Min is min(C1,C2).

сумма(X,Y):- integer(X), X<10, Y is X.
сумма(X,Y):- integer(X), X1 is X//10, сумма(X1,Y1),  
             Z is X mod 10, Y is Y1+Z.

печать_суммы:-  write('Введите число (не забудьте точку в конце): '),
    read(X), nl,
    write('Сумма цифр введенного числа равна '),
    сумма(X,Y), write(Y), nl.

факт(1,1).
факт(N,R):- integer(N), N>1, N1 is N-1, 
            факт(N1,R1), R is N*R1.

сумма_списка([],0).
сумма_списка([H|T],S):- сумма_списка(T,S1), number(H), S is S1+H.
