You are on page 1of 1

%Program to add two numbers.

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

You might also like