Untitled

mail@pastecode.io avatar
unknown
plain_text
8 months ago
2.3 kB
0
Indexable
Never
kobieta(ewa).
kobieta(ola).
kobieta(ala).
kobieta(marta).
kobieta(anna).
kobieta(iza).
mezczyzna(adam).
mezczyzna(piotr).
mezczyzna(pawel).
mezczyzna(jan).
mezczyzna(tomasz).
mezczyzna(roman).

rodzic(adam, ala).
rodzic(adam, piotr).
rodzic(adam, ola).
rodzic(adam, pawel).
rodzic(ewa, ala).
rodzic(ewa, piotr).
rodzic(ewa, ola).
rodzic(ewa, pawel).
rodzic(jan, tomasz).
rodzic(jan, anna).
rodzic(marta, tomasz).
rodzic(marta, anna).
rodzic(ola, roman).
rodzic(tomasz, roman).
rodzic(pawel, iza).
rodzic(anna, iza).

matka(X, Y):-
kobieta(X),
rodzic(X, Y).

ojciec(X, Y):-
mezczyzna(X),
rodzic(X, Y).

syn(X, Y):-
mezczyzna(Y),
rodzic(X, Y).

corka(X, Y):-
kobieta(Y),
rodzic(X, Y).

brat(X, Y):-
mezczyzna(X),
rodzic(Z, X),
rodzic(Z, Y),
X\=Y.

siostra(X, Y):-
kobieta(X),
rodzic(Z, X),
rodzic(Z, Y),
X\=Y.

rodzenstwo(X, Y):-
rodzic(Z, X),
rodzic(Z, Y),
X\=Y.

ciocia(X, Y):-
kobieta(X),
rodzic(Z, Y),
rodzenstwo(X, Z).

wujek(X, Y):-
mezczyzna(X),
rodzic(Z, Y),
rodzenstwo(X, Z).

kuzyn(X, Y):-
mezczyzna(X),
rodzic(Z, Y),
rodzic(A, X),
rodzenstwo(A, Z).

kuzynka(X, Y):-
kobieta(X),
rodzic(Z, Y),
rodzic(A, X),
rodzenstwo(A, Z).

babcia(X, Y):-
kobieta(X),
rodzic(Z, Y),
rodzic(X, Z).

dziadek(X, Y):-
mezczyzna(X),
rodzic(Z, Y),
rodzic(X, Z).

przodek(X, Y):-
rodzic(X, Y).
przodek(X, Y):-
rodzic(X, Z),
przodek(Z, Y).

silnia(0, 1).
silnia(N, X):-
silnia(N, 1, X).
silnia(1, A, A).
silnia(N, A, X):-
N>1,
N1 is N-1,
A1 is N*A,
silnia(N1, A1, X).

potega(X, 0, 1).
potega(X, N, Y):-
N>0,
N1 is N-1,
potega(X, N1, Y1),
Y is X*Y1.

ipotega(X, 0, 1).
ipotega(X, N, Y):-
ipotega(X, N, 1, Y).
ipotega(X, 0, A, A).
ipotega(X, N, A, Y):-
N>0,
N1 is N-1,
A1 is X*A,
ipotega(X, N1, A1, Y).

fib(0, 1).
fib(1, 1).
fib(N, F):-
N>1,
N1 is N-1,
N2 is N-2,
fib(N1, F1),
fib(N2, F2),
F is F1+F2.

ifib(0, 1).
ifib(1, 1).
ifib(N, F):-
N>1,
ifib(N, 1, 1, F).
ifib(N, A1, A2, F):-
N>0,
A3 is A1+A2,
N1 is N-1,
ifib(N1, A2, A3, F).
ifib(0, A1, A2, A2).

pod3(0).
pod3(N):-
N>2,
N1 is N-3,
pod3(N1).

nalezy(E, [E|T]).
nalezy(E, [H|T]):-
nalezy(E,T).

polacz([],L,L).
polacz([H|T], L, [H|T1]):-
polacz(T, L, T1).