Documentos de Académico
Documentos de Profesional
Documentos de Cultura
% 3.(Factorial de un numero)
facto(0,1).
facto(1,1).
facto(N,F):- N>0,
N1 is N-1,
facto(N1,F1),
F is N*F1.
% 5.(Número perfectos):
% 6.(factorialInverso):
facti :-
write('Ingrese un número para calcular su factorial inverso: '),
read(Numero), nl,
calcularFactorialInverso(Numero, Resultado),
format('El factorial inverso de ~w es ~w', [Numero, Resultado]), nl.
calcularFactorialInverso(Numero, Resultado) :-
factorial(Numero, Factorial),
Resultado is 1 / Factorial.
factorial(0, 1).
factorial(N, Resultado) :-
N > 0,
N1 is N - 1,
factorial(N1, SubResultado),
Resultado is N * SubResultado.
% 7. (maximoDosNumeros):
max :-
write('Ingrese el primer número: '),
read(Num1),
write('Ingrese el segundo número: '),
read(Num2), nl,
maximo(Num1, Num2, Maximo),
format('El numero máximo de ~w y ~w es ~w', [Num1, Num2, Maximo]), nl.
maximo(X, Y, X) :- X >= Y.
maximo(X, Y, Y) :- X < Y.
% 9. (Serie fibonacchi):
fibonacci(_, _, 0).
fibonacci(A, B, NF) :-
write(A),
write(' '),
N1 is NF - 1,
C is A + B,
fibonacci(B, C, N1).
menú:
menu:-
write('M E N U P R I N C I P A L\n'),
write('1. Elevar a potencia'),nl,
write('2. Multiplicar dos valores'),nl,
write('3. Factorial de un numero'),nl,
write('4. Máximo común divisor'),nl,
write('5. Números perfectos'),nl,
write('6. Factorial inverso'),nl,
write('7. Máximo de dos números'),nl,
write('8. Cant. de elementos repetidos en una lista'),nl,
write('9. Serie de Fibonacci'),nl,
write('0. Finalizar'),nl,
write('Seleccione opcion: '), read(Opc),
ejecutar(Opc).
ejecutar(Opc):-
Opc==1, elevar, menu;
Opc==2, multi, menu;