Last active
June 19, 2021 02:23
-
-
Save jhasmany-fernandez/e3ed5d66ce3066481ab2d91b017bb857 to your computer and use it in GitHub Desktop.
U.A.G.R.M. | Materia: Programacion Logica y Funcional | Docente: Edwin Vargas Yapura | Repositorio: Predicados Expresiones Aritmeticas | Lenguaje: Prolog
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% ---------------------------------------------+ | |
% GRUPO: 11 | | |
% NOMBRE: FERNANDEZ ORTEGA JHASMANY JHUNNIOR | | |
% MATERIA: INF 318 - SA | | |
% ---------------------------------------------+ | |
% |---------------------------------------------+ | |
% |PREDICADOS CON EXPRESIONES ARITMÉTICAS. | | |
% |_____________________________________________+ | |
%--------------------------- ENCONTRAR EL MENOR------------------------------ | |
menor(A,B,Me):-A < B, Me is A,!. | |
menor(_,B,B). | |
menor(A,B,C,Me):-menor(A,B,Me1), menor(C,Me1,Me),!. | |
menor(A,B,C,D,Me):-menor(A,B,C,Me2),menor(D,Me2,Me),!. | |
menor(A,B,C,D,E,Me):-menor(A,B,C,D,Me3),menor(E,Me3,Me),!. | |
%--------------------------- ENCONTRAR EL MAYOR------------------------------ | |
mayor(A,B,My):-A > B, My is A,!. | |
mayor(_,B,B). | |
mayor(A,B,C,My):-mayor(A,B,My1), mayor(C,My1,My),!. | |
mayor(A,B,C,D,My):-mayor(A,B,C,My2),mayor(D,My2,My),!. | |
mayor(A,B,C,D,E,My):-mayor(A,B,C,D,My3),mayor(E,My3,My),!. | |
%--------------------------- ENCONTRAR EL SEGUNDO MENOR---------------------- | |
segMenor(A, B, Me):-A < B, Me is A,!. | |
segMenor(_,B,B). | |
segMenor(A, B, C, Me):-menor(A,B,C,Me1),Me1=:=A,menor(B,C,Me),!. | |
segMenor(A, B, C, Me):-menor(A,B,C,Me1),Me1=:=B,menor(C,A,Me),!. | |
segMenor(A, B, C, Me):-menor(A,B,C,Me1),Me1=:=C,menor(A,B,Me),!. | |
segMenor(A, B, C, D, Me):-menor(A,B,C,D,Me1),Me1=:=A,menor(B,C,D,Me),!. | |
segMenor(A, B, C, D, Me):-menor(A,B,C,D,Me1),Me1=:=B,menor(A,C,D,Me),!. | |
segMenor(A, B, C, D, Me):-menor(A,B,C,D,Me1),Me1=:=C,menor(B,A,D,Me),!. | |
segMenor(A, B, C, D, Me):-menor(A,B,C,D,Me1),Me1=:=D,menor(B,C,A,Me),!. | |
segMenor(A, B, C, D, E, Me):- menor(A,B,C,D,E,Me1),Me1=:=A,menor(B,C,D,E,Me),!. | |
segMenor(A, B, C, D, E, Me):- menor(A,B,C,D,E,Me1),Me1=:=B,menor(A,C,D,E,Me),!. | |
segMenor(A, B, C, D, E, Me):- menor(A,B,C,D,E,Me1),Me1=:=C,menor(B,A,D,E,Me),!. | |
segMenor(A, B, C, D, E, Me):- menor(A,B,C,D,E,Me1),Me1=:=D,menor(B,C,A,E,Me),!. | |
segMenor(A, B, C, D, E, Me):- menor(A,B,C,D,E,Me1),Me1=:=E,menor(B,C,D,A,Me),!. | |
%--------------------------- ENCONTRAR EL SEGUNDO MAYOR---------------------- | |
segMayor(A, B, My):-A > B, My is A,!. | |
segMayor(_,B,B). | |
segMayor(A, B, C, My):-mayor(A,B,C,My1),My1=:=A, mayor(B,C,My),!. | |
segMayor(A, B, C, My):-mayor(A,B,C,My1),My1=:=B, mayor(C,A,My),!. | |
segMayor(A, B, C, My):-mayor(A,B,C,My1),My1=:=C, mayor(A,B,My),!. | |
segMayor(A, B, C, D, My):-mayor(A,B,C,D,My1),My1=:=A, mayor(B,C,D,My),!. | |
segMayor(A, B, C, D, My):-mayor(A,B,C,D,My1),My1=:=B, mayor(A,C,D,My),!. | |
segMayor(A, B, C, D, My):-mayor(A,B,C,D,My1),My1=:=C, mayor(B,A,D,My),!. | |
segMayor(A, B, C, D, My):-mayor(A,B,C,D,My1),My1=:=D, mayor(B,C,A,My),!. | |
segMayor(A, B, C, D, E, My):- mayor(A,B,C,D,E,My1),My1=:=A, mayor(B,C,D,E,My),!. | |
segMayor(A, B, C, D, E, My):- mayor(A,B,C,D,E,My1),My1=:=B, mayor(A,C,D,E,My),!. | |
segMayor(A, B, C, D, E, My):- mayor(A,B,C,D,E,My1),My1=:=C, mayor(B,A,D,E,My),!. | |
segMayor(A, B, C, D, E, My):- mayor(A,B,C,D,E,My1),My1=:=D, mayor(B,C,A,E,My),!. | |
segMayor(A, B, C, D, E, My):- mayor(A,B,C,D,E,My1),My1=:=E, mayor(B,C,D,A,My),!. | |
%--------------------------- ENCONTRAR EL TERCER MENOR----------------------- | |
tercerMenor(A, B, C, Me):-menor(A,B,C,Me). | |
tercerMenor(A, B, C, D, Me):-segMenor(A,B,C,D,Me1),Me1=:=A,segMenor(B,C,D,Me),!. | |
tercerMenor(A, B, C, D, Me):-segMenor(A,B,C,D,Me1),Me1=:=B,segMenor(A,C,D,Me),!. | |
tercerMenor(A, B, C, D, Me):-segMenor(A,B,C,D,Me1),Me1=:=C,segMenor(B,A,D,Me),!. | |
tercerMenor(A, B, C, D, Me):-segMenor(A,B,C,D,Me1),Me1=:=D,segMenor(B,C,A,Me),!. | |
tercerMenor(A, B, C, D, E, Me):-segMenor(A,B,C,D,E,Me1),Me1=:=A,segMenor(B,C,D,E,Me),!. | |
tercerMenor(A, B, C, D, E, Me):-segMenor(A,B,C,D,E,Me1),Me1=:=B,segMenor(A,C,D,E,Me),!. | |
tercerMenor(A, B, C, D, E, Me):-segMenor(A,B,C,D,E,Me1),Me1=:=C,segMenor(B,A,D,E,Me),!. | |
tercerMenor(A, B, C, D, E, Me):-segMenor(A,B,C,D,E,Me1),Me1=:=D,segMenor(B,C,A,E,Me),!. | |
tercerMenor(A, B, C, D, E, Me):-segMenor(A,B,C,D,E,Me1),Me1=:=E,segMenor(B,C,D,A,Me),!. | |
%--------------------------- ENCONTRAR EL TERCER MAYOR----------------------- | |
tercerMayor(A,B,C,My):-mayor(A,B,C,My). | |
tercerMayor(A, B, C, D, My):-segMayor(A,B,C,D,My1), My1=:=A,segMayor(B,C,D,My),!. | |
tercerMayor(A, B, C, D, My):-segMayor(A,B,C,D,My1), My1=:=B,segMayor(A,C,D,My),!. | |
tercerMayor(A, B, C, D, My):-segMayor(A,B,C,D,My1), My1=:=C,segMayor(B,A,D,My),!. | |
tercerMayor(A, B, C, D, My):-segMayor(A,B,C,D,My1), My1=:=D,segMayor(B,C,A,My),!. | |
tercerMayor(A, B, C, D, E, My):-segMayor(A,B,C,D,E,My1),My1=:=A,segMayor(B,C,D,E,My),!. | |
tercerMayor(A, B, C, D, E, My):-segMayor(A,B,C,D,E,My1),My1=:=B,segMayor(A,C,D,E,My),!. | |
tercerMayor(A, B, C, D, E, My):-segMayor(A,B,C,D,E,My1),My1=:=C,segMayor(B,A,D,E,My),!. | |
tercerMayor(A, B, C, D, E, My):-segMayor(A,B,C,D,E,My1),My1=:=D,segMayor(B,C,A,E,My),!. | |
tercerMayor(A, B, C, D, E, My):-segMayor(A,B,C,D,E,My1),My1=:=E,segMayor(B,C,D,A,My),!. | |
%---------- PREDICADO QUE ES TRUE, SI TODOS LOS ARGUMENTOS SON IGUALES------- | |
iguales(A,B):-A=:=B. | |
iguales(A,B,C):-iguales(A,B),iguales(B,C),!. | |
iguales(A, B, C, D):-iguales(A,B,C),iguales(C,D),!. | |
iguales(A, B, C, D, E):-iguales(A,B,C,D),iguales(D,E),!. | |
%------- PREDICADO QUE ES TRUE, SI TODOS LOS ARGUMENTOS SON DIFERENTES------- | |
diferentes(A, B):-not(A=:=B),!. | |
diferentes(A,B,C):-diferentes(A,B),diferentes(B,C),diferentes(A,C),!. | |
diferentes(A,B,C,D):-diferentes(A,B,C),diferentes(A,D),diferentes(B,D),diferentes(C,D),!. | |
diferentes(A,B,C,D,E):-diferentes(A,B,C,D),diferentes(A,E),diferentes(B,E),diferentes(C,E),diferentes(D,E),!. | |
%-----------Predicado que es True, si solo 2 argumentos son iguales y las demás diferentes entre ellas y diferentes a las iguales.-------------------- | |
dosIguales(A,B):-iguales(A,B),!. dosIguales(A,B,C):-iguales(A,B),diferentes(B,C),!. | |
dosIguales(A,B,C):-iguales(A,C),diferentes(C,B),!. | |
dosIguales(A,B,C):-iguales(B,C),diferentes(C,A),!. | |
dosIguales(A,B,C,D):-iguales(A,B),diferentes(B,C,D),!. | |
dosIguales(A,B,C,D):-iguales(A,C),diferentes(C,B,D),!. | |
dosIguales(A,B,C,D):-iguales(A,D),diferentes(C,B,D),!. | |
dosIguales(A,B,C,D):-iguales(B,C),diferentes(C,A,D),!. | |
dosIguales(A,B,C,D):-iguales(B,D),diferentes(C,B,A),!. | |
dosIguales(A,B,C,D):-iguales(C,D),diferentes(C,B,A),!. | |
%---------Predicado que es True, si solo 3 argumentos son iguales y las demás diferentes entre ellas y diferentes a las iguales.--------------------------- | |
igual(A,B,C):- A==B, A==C, B==C. | |
tresiguales(A,B):-igual(A,B). | |
tresiguales(A,B,C):-igual(A,B,C). | |
tresiguales(A,B,C,D):-igual(A,B,C),difr(A,D); | |
igual(B,C,D),difr(B,A); | |
igual(C,D,A),difr(C,B); | |
igual(D,A,B),difr(D,C). | |
tresiguales(A,B,C,D,E):-igual(A,B,C),difr(A,D),difr(A,E); | |
igual(A,B,D),difr(A,C),difr(A,E); | |
igual(A,B,E),difr(A,C),difr(A,D); | |
igual(A,C,D),difr(A,B),difr(A,E); | |
igual(A,C,E),difr(A,B),difr(A,D); | |
igual(A,D,E),difr(A,B),difr(A,C); | |
igual(B,C,D),difr(B,A),difr(B,E); | |
igual(B,C,E),difr(B,A),difr(B,D); | |
igual(B,D,E),difr(B,A),difr(B,C); | |
igual(C,D,E),difr(C,A),difr(C,B). | |
%------Predicado que es True, todos los argumentos son iguales excepto uno.— | |
poker(A,B):-dif(A,B). | |
poker(A,B,C):-ig(A,B),dif(A,C);ig(A,C),dif(A,B);ig(B,C),dif(A,B). | |
poker(A,B,C,D):-ig(A,B,C),dif(A,D);ig(A,B,D),dif(A,C);ig(A,C,D),dif(A,B);ig(B,C,D),dif(A,B). | |
poker(A,B,C,D,E):-ig(A,B,C,D),dif(A,E);ig(A,B,C,E),dif(A,D);ig(A,B,D,E),dif(A,C); | |
ig(A,C,D,E),dif(A,B);ig(B,C,D,E),dif(A,B). | |
%---------------Predicado que es True, si solo 2 argumentos son pares y las demás impares.------------------------------------------------------------ | |
pares(A,B):-par(A),par(B),!. %dos pares? | |
dosPares(A,B,C):-pares(A,B),impar(C),!. | |
dosPares(A,B,C):-pares(A,C),impar(B),!. | |
dosPares(A,B,C):-pares(B,C),impar(A),!. | |
dosPares(A,B,C,D):-pares(A,B),impar(C),impar(D),!. | |
dosPares(A,B,C,D):-pares(A,C),impar(B),impar(D),!. | |
dosPares(A,B,C,D):-pares(A,D),impar(B),impar(C),!. | |
dosPares(A,B,C,D):-pares(B,C),impar(A),impar(D),!. | |
dosPares(A,B,C,D):-pares(B,D),impar(A),impar(C),!. | |
dosPares(A,B,C,D):-pares(C,D),impar(A),impar(B),!. | |
dosPares(A,B,C,D,E):-pares(A,B),impar(C),impar(D),impar(E),!. | |
dosPares(A,B,C,D,E):-pares(A,C),impar(B),impar(D),impar(E),!. | |
dosPares(A,B,C,D,E):-pares(A,D),impar(B),impar(C),impar(E),!. | |
dosPares(A,B,C,D,E):-pares(A,E),impar(B),impar(C),impar(D),!. | |
dosPares(A,B,C,D,E):-pares(B,C),impar(A),impar(D),impar(E),!. | |
dosPares(A,B,C,D,E):-pares(B,D),impar(A),impar(C),impar(E),!. | |
dosPares(A,B,C,D,E):-pares(B,E),impar(A),impar(C),impar(D),!. | |
dosPares(A,B,C,D,E):-pares(C,D),impar(A),impar(B),impar(E),!. | |
dosPares(A,B,C,D,E):-pares(C,E),impar(A),impar(B),impar(D),!. | |
dosPares(A,B,C,D,E):-pares(D,E),impar(A),impar(B),impar(C),!. | |
%-----Predicado que es True, si solo 3 argumentos son pares y las demás impares.--- | |
tresPares(A,B,C):-pares(A,B,C),!. | |
tresPares(A,B,C,D):-pares(A,B,C),not(par(D)),!. | |
tresPares(A,B,C,D):-pares(A,B,D),not(par(C)),!. | |
tresPares(A,B,C,D):-pares(A,C,D),not(par(B)),!. | |
tresPares(A,B,C,D):-pares(B,C,D),not(par(A)),!. | |
trespares(A,B,C,D,E):-par(A,B,C),not(par(D)),not(par(E)); | |
par(A,B,D),not(par(C)),not(par(E)); | |
par(A,B,E),not(par(C)),not(par(D)); | |
par(A,C,D),not(par(B)),not(par(E)); | |
par(A,C,E),not(par(B)),not(par(D)); | |
par(A,D,E),not(par(B)),not(par(C)); | |
par(B,C,D),not(par(A)),not(par(E)); | |
par(B,C,E),not(par(A)),not(par(D)); | |
par(B,D,E),not(par(A)),not(par(C)); | |
par(C,D,E),not(par(A)),not(par(B)). | |
todosImpares(A,B):-impar(A,B),!. | |
todosImpares(A,B,C):-impar(A,B,C),!. | |
todosImpares(A,B,C,D):-impar(A,B,C),par(D),!. | |
todosImpares(A,B,C,D,E):-todosImpares(A,B,C,D),par(E),!. | |
%existePar(A, B) | |
%existePar(A, B, C) | |
%existePar(A, B, C, D) | |
%existePar(A, B, C, D, E) : Predicado que es True, si existe al menos un argumento par. | |
%----------------- PREDICADO QUE ES TRUE, SI ESTAN ORDENADOS ---------------- | |
ordenado(A,B):-ordenDesc(A,B);ordenAsc(A,B),!. | |
ordenado(A,B,C):-ordenDesc(A,B,C);ordenAsc(A,B,C),!. | |
ordenado(A,B,C,D):-ordenDesc(A,B,C,D);ordenAsc(A,B,C,D),!. | |
ordenado(A,B,C,D,E):-ordenDesc(A,B,C,D,E);ordenAsc(A,B,C,D,E),!. | |
%------ PREDICADO QUE ES TRUE, SI ESTAN ORDENADOS DE FORMA DESCENDENTE ------ | |
ordenDesc(A,B):-mayor(A,B,_),!. | |
ordenDesc(A,B,C):-ordenDesc(A,B),ordenDesc(B,C),!. | |
ordenDesc(A,B,C,D):-ordenDesc(A,B,C),ordenDesc(C,D),!. | |
ordenDesc(A,B,C,D,E):-ordenDesc(A,B,C,D),ordenDesc(D,E),!. | |
%-------------------- PREDICADO QUE ES TRUE, SI ES PALINDROME -------------- | |
palindrome(A,B):-iguales(A,B),!. | |
palindrome(A,B,C):-palindrome(A,C),palindrome(B,B),!. | |
palindrome(A,B,C,D):-palindrome(A,D),palindrome(B,C),!. | |
palindrome(A,B,C,D,E):-palindrome(A,E),palindrome(B,D),palindrome(C,C),!. | |
%---------------- MENOR DIFERENCIA ENTRE PAREJAS DE ARGUMENTOS -------------- | |
dif(A,B,Dif):-A > B, Dif is A - B,!. | |
dif(A,B,Dif):-B > A, Dif is B - A,!. | |
%---------------------------------------------------------------------------- | |
menorDif(A,B,Me):-dif(A,B,M1),Me is M1,!. | |
menorDif(A,B,C,Me):-dif(A,B,M1),dif(A,C,M2),dif(B,C,M3),menor(M1,M2,M3,MD),Me is MD,!. | |
menorDif(A,B,C,D,Me):- dif(A,B,M1),dif(A,C,M2),dif(A,D,M3),dif(B,C,M4),dif(B,D,M5),dif(C,D,M6),menor(M1,M2,M3,MD1),menor(M4,M5,M6,MD2),menor(MD1,MD2,Res),Me is Res,!. | |
menorDif(A,B,C,D,E,Me):-dif(A,B,M1),dif(A,C,M2),dif(A,D,M3),dif(A,E,M4),dif(B,C,M5),dif(B,D,M6),dif(B,E,M7),dif(C,D,M8),dif(C,E,M9),dif(D,E,M10),menor(M1,M2,M3,M4,M5,MD1),menor(M6,M7,M8,M9,M10,MD2),menor(MD1,MD2,Res),Me is Res,!. | |
%---------------- MAYOR DIFERENCIA ENTRE PAREJAS DE ARGUMENTOS -------------- | |
mayorDif(A,B,My):-dif(A,B,M1),My is M1,!. | |
mayorDif(A,B,C,My):-dif(A,B,M1),dif(A,C,M2),dif(B,C,M3),mayor(M1,M2,M3,Res),My is Res,!. | |
mayorDif(A,B,C,D,My):- dif(A,B,M1),dif(A,C,M2),dif(A,D,M3),dif(B,C,M4),dif(B,D,M5),dif(C,D,M6),mayor(M1,M2,M3,MD1),mayor(M4,M5,M6,MD2),mayor(MD1,MD2,Res),My is Res,!. | |
mayorDif(A,B,C,D,E,Me):-dif(A,B,M1),dif(A,C,M2),dif(A,D,M3),dif(A,E,M4),dif(B,C,M5),dif(B,D,M6),dif(B | |
,E,M7),dif(C,D,M8),dif(C,E,M9),dif(D,E,M10),mayor(M1,M2,M3,M4,M5,MD1),mayor(M6,M7,M8,M9,M10,MD2),mayor(MD1,MD2,Res),Me is Res,!. | |
%---- UN ARGUMENTO QUE SEA IGUAL A LA DIFERENCIA DE OTROS DOS ARGUMENTOS ---- | |
existeDif(A,B,C):-dif(B,C,M1),iguales(A,M1);dif(A,C,M2),iguales(B,M2);dif(A,B,M3),iguales(C,M3),!. | |
existeDif(A,B,C,D):-existeDif(A,B,C);dif(C,D,M1),iguales(A,M1);dif(B,D,M2),iguales(A,M2); dif(C,D,M3),iguales(B,M3);dif(A,D,M4),iguales(B,M4); dif(B,D,M5),iguales(C,M5);dif(A,D,M6),iguales(C,M6); dif(A,D,M7),iguales(D,M7);dif(B,C,M8),iguales(D,M8),!. | |
existeDif(A,B,C,D,E):-existeDif(A,B,C,D);dif(D,E,M1)iguales(A,M1);dif(C,E,M2),iguales(A,M2);dif(B,E,M3),iguales(A,M3); dif(A,E,M4)iguales(B,M5);dif(C,E,M6),iguales(B,M6);dif(D,E,M7),iguales(B,M7); dif(A,E,M8)iguales(C,M8);dif(B,E,M9),iguales(C,M9);dif(D,E.M10),iguales(C,M10); dif(A,E,M11)iguales(D,M11);dif(B,E,M12),iguales(D,M12);dif(C,E.M13),iguales(D,M13); dif(A,B,M14)iguales(E,M14);dif(B,C,M15),iguales(E,M16);dif(C,D.M17),iguales(E,M17),!. | |
%-------TRUE SI 1 ARGUMENTO ES IGUAL A LA SUMA DE LOS OTROS ARGUMENTOS ------ | |
suma(A,B,M1):-M1 is A + B,!. | |
suma(A,B,C,M2):-suma(A,B,M1),M2 is M1 + C,!. | |
suma(A,B,C,D,M3):-suma(A,B,C,M2),M3 is M2 + D,!. | |
%---------------------------------------------------------------------------- | |
sumados(A,B,C):-suma(B,C,M1),iguales(A,M1);suma(A,C,M2),iguales(B,M2);suma(A,B,M3),iguales(C,M3),!. | |
sumados(A,B,C,D):-suma(B,C,D,M1),iguales(A,M1);suma(A,C,D,M2),iguales(B,M2);suma(A,B,D,M3),iguales(C,M3);suma(A,B,C,M4),iguales(D,M4),!. | |
sumados(A,B,C,D,E):-suma(B,C,D,E,M1),iguales(A,M1);suma(A,C,D,E,M2),iguales(B,M2);suma(A,B,D,E,M3),iguales(C,M3);suma(A,B,C,E,M4),iguales(D,M4);suma(A,B,C,D,M5),iguales(E,M5),!. | |
%----TRUE SI UN ARGUMENTO ES IGUAL A LA DIV ENTERA DE OTROS 2 ARGUMENTOS ---- | |
divicion(A,B,M1):-M1 is A // B,!. | |
%---------------------------------------------------------------------------- | |
divEntera(A,B,C):-divicion(B,C,M1),iguales(A,M1);divicion(A,C,M2),iguales(B,M2);divicion(A,B,M3),iguales(C,M3),!. | |
divEntera(A,B,C,D):-divEntera(A,B,C);divicion(C,D,M1),iguales(A,M1);divicion(B,D,M2),iguales(A,M2); divicion(C,D,M3),iguales(B,M3);divicion(A,D,M4),iguales(B,M4); | |
divicion(B,D,M5),iguales(C,M5);divicion(A,D,M6),iguales(C,M6); divicion(A,D,M7),iguales(D,M7);divicion(B,C,M8),iguales(D,M8),!. | |
divEntera(A,B,C,D,E):-divEntera(A,B,C,D);divicion(D,E,M1)iguales(A,M1);divicion(C,E,M2),iguales(A,M2);divicion(B,E,M3),iguales(A,M3); divicion(A,E,M4)iguales(B,M5);divicion(C,E,M6),iguales(B,M6);divicion(D,E,M7),iguales(B,M7); divicion(A,E,M8)iguales(C,M8);divicion(B,E,M9),iguales(C,M9);divicion(D,E.M10),iguales(C,M10); divicion(A,E,M11)iguales(D,M11);divicion(B,E,M12),iguales(D,M12);divicion(C,E.M13),iguales(D,M13); divicion(A,B,M14)iguales(E,M14);divicion(B,C,M15),iguales(E,M16);divicion(C,D.M17),iguales(E,M17),!. | |
%TRUE SI UN ARGUMENTO IGUAL AL RESIDUO DE LA DIV-ENTERA DE OTROS 2ARGUMENTOS | |
residuo1(A,B,M1):-M1 is A mod B,!. | |
residuo(A,B,C):-residuo1(B,C,M1),iguales(A,M1);residuo1(A,C,M2),iguales(B,M2);residuo1(A,B,M3),iguales(C,M3),!. | |
residuo(A,B,C,D):-residuo(A,B,C);residuo1(C,D,M1),iguales(A,M1);residuo1(B,D,M2),iguales(A,M2); residuo1(C,D,M3),iguales(B,M3);residuo1(A,D,M4),iguales(B,M4); residuo1(B,D,M5),iguales(C,M5);residuo1(A,D,M6),iguales(C,M6); residuo1(A,B,M7),iguales(D,M7);residuo1(B,C,M8),iguales(D,M8),!. | |
residuo(A,B,C,D,E):-residuo(A,B,C,D);residuo1(D,E,M1)iguales(A,M1);residuo1(C,E,M2),iguales(A,M2);residuo1(B,E,M3),iguales(A,M3); residuo1(A,E,M4)iguales(B,M5);residuo1(C,E,M6),iguales(B,M6);residuo1(D,E,M7),iguales(B,M7); residuo1(A,E,M8)iguales(C,M8);residuo1(B,E,M9),iguales(C,M9);residuo1(D,E.M10),iguales(C,M10); residuo1(A,E,M11)iguales(D,M11);residuo1(B,E,M12),iguales(D,M12);residuo1(C,E.M13),iguales(D,M13); residuo1(A,B,M14)iguales(E,M14);residuo1(B,C,M15),iguales(E,M16);residuo1(C,D.M17),iguales(E,M17),!. | |
---------------------------------------------------------------------------------------------------------------------------------------- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment