%Rules. sum(X,Y):- Z is X+Y,write("Sum is "),write(Z),nl. %Query. ?- read(M),read(N),write(M),write(N),sum(M,N).
%Program to print maximum of two numbers.
%Rules. max(X,Y):- X>Y,write("Maximum is "),write(X),nl. max(X,Y):- X=<Y,write("Maximum is "),write(Y),nl. %Query. ?- read(M),read(N),max(M,N).
%Program to find factorial of a number.
%Facts. fact(0,1):- !. %Rules. fact(N,R):- N1 is N-1,fact(N1,R1),R is N*R1. %Query. ?- read(M),fact(M,R),write("Factorial is "),write(R),nl.
%Program to find gcd of two numbers.
%Rules. max(X,Y,R1,R2):- X>Y,R1=X,R2=Y. max(X,Y,R1,R2):- X<Y,R2=X,R1=Y. gcd(X,Y):- max(X,Y,R1,R2),Z is R1 mod R2,Z>0,gcd(Z,R2). gcd(X,Y):- max(X,Y,R1,R2),Z is R1 mod R2,Z=0,write(" is "),write(R2),nl. gcd(X,Y):- X=:=Y,write(" is "),write(X),nl. %Query. ?- read(X),read(Y),write("GCD of "),write(X),write(" and "),write(Y),gcd(X,Y).