PROLOG Program to Find Factorial of a Number

predicates
    factorial(integer, real)
    go
    
clauses
    go if
    write("Enter a positive integer number:"),
    readint(N),
    factorial(N,Result),
    write("Factorial of", N, "is=", Result).
    factorial(0, 1)
    factorial(N, Result) if N>0,
                    N1=N-1,
                    factorial(N1, Res),
                    Result=N*Res.

Output:

goals:
    factorial(5, Answer)
            Answer=120