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