% leap.pl
% Determine if a year is a leap year.
% A year is a leap year if it is evenly divisble by 4, but if
% it is evenly divisble by 100, it must also be evenly divisible by 400.
%
% This is a long-winded version, explicitly checking every condition.

leap(X):-X mod 100 =:= 0, X mod 400 =:= 0, write('Leap year'),!.
leap(X):-Z is X mod 100, Z=:=0, V is X mod 400, V=\=0, write('Not a leap year'),!.
leap(X):-Z is X mod 4, Z=:=0, V is X mod 100, V=\=0, write('Leap year'),!.
leap(X):-Z is X mod 4, Z=\=0, write('Not a leap year').
