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).