pa(X,Y):-pored_d(X,Y). pa(X,Y):-pored_d(X,Z),pa(Z,Y). pb(X,Y):-pa(X,Y),godina_rodjenja(X,G), godina_rodjenja(Y,G). pc(X,Y,Z):-pa(Y,X),pa(Z,X),not(Y=Z). cifra(0,nula). cifra(1,jedan). cifra(2,dva). cifra(3,tri). cifra(4,cetiri). cifra(5,pet). cifra(6,sest). cifra(7,sedam). cifra(8,osam). cifra(9,devet). ispis(0). ispis(N):- C is N mod 10, cifra(C,X),write(X),write(' '),N1 is N//10,ispis(N1). ispisObr(0). ispisObr(N):-N1 is N//10,ispisObr(N1),C is N mod 10, cifra(C,X),write(X),write(' '). cifra(0). cifra(1). cifra(2). cifra(3). cifra(4). cifra(5). cifra(6). cifra(7). cifra(8). cifra(9). resi(S,N,E,G,A,K,P,O,R,T) :- cifra(S),S=\=0, cifra(N),N=\=S, cifra(E),E=\=N,E=\=S, cifra(G),G=\=E,G=\=N,G=\=S, cifra(A),A=\=G,A=\=E,A=\=N,A=\=S, cifra(K),K=\=A,K=\=G,K=\=E,K=\=N,K=\=S, cifra(P),P=\=K,P=\=A,P=\=G,P=\=E,P=\=N,P=\=S, cifra(O),O=\=P,O=\=K,O=\=A,O=\=G,O=\=E,O=\=N,O=\=S, cifra(R),R=\=O,R=\=P,R=\=K,R=\=A,R=\=G,R=\=E,R=\=N,R=\=S, cifra(T),T=\=R,T=\=O,T=\=P,T=\=K,T=\=A,T=\=G,T=\=E,T=\=N,T=\=S, suma(S,N,E,G,A,K,P,O,R,T). suma(S,N,E,G,A,K,P,O,R,T):- 1000*S+100*N+10*E+G + 10000*S+1000*A+100*N+10*K+E =:= S*10000+P*1000+O*100+R*10+T. elem(X,[X|_]). elem(X,[Y|R]):- X=\=Y,elem(X,R). sadrzi(X, [X|_]). sadrzi(X, [G|R]):- G \== X, sadrzi(X, R). razresi(L):- L=[[_,andric,torta],[_,brankovic,_],[_,davidovic,_],[_,_,_]], sadrzi([ruska,_,kafa],L), sadrzi([vladislava,_,_],L), sadrzi([ana,petrovic,_],L), sadrzi([marija,_,_],L), sadrzi([_,_,vino],L), sadrzi([_,_,kolac],L), \+(sadrzi([_,brankovic,kolac],L)), \+(sadrzi([vladislava,_,kolac],L)), \+(sadrzi([ruska,davidovic,_],L)), \+(sadrzi([marija,_,vino],L)). sredi([],[]). sredi([G|R],L):-sredi(R,R1), dodaj(G,R1, L). dodaj(X,[],[s(X,1)]). dodaj(X,[s(X,B)|R],[s(X,B1)|R]):-B1 is B+1,!. dodaj(X,[s(G,B)|R],[s(X,1), s(G,B)|R]):-X0, K1 is K-1, suma(R,K1,S1), S is S1+G. suma_k(L,K,[]):-duzina(L,D), D Root, add(X,R,R1). napravi(L,T) :- napravi(L,T,nil). napravi([],T,T). napravi([N|Ns],T,T0) :- add(N,T0,T1), napravi(Ns,T,T1). leaves1(nil,[]). leaves1(t(X,nil,nil),[X]) :- !. leaves1(t(_,L,R),S) :- leaves1(L,SL), leaves1(R,SR), append(SL,SR,S).