Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jhasmany-fernandez/e3ed5d66ce3066481ab2d91b017bb857 to your computer and use it in GitHub Desktop.
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
% ---------------------------------------------+
% 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