fac(0, 1) :- !.
fac(N, Nfac) :-
N > 0,
M is N - 1,
fac(M, Mfac),
Nfac is N * Mfac.