uru(X):- divideby400(X). uru(X):- divideby4(X), not(divideby100(X)). divideby(X, Y, Z) :- 0 =:= X - integer(X * Y) * Z. divideby4(X) :- divideby(X, 0.25, 4). divideby100(X) :- divideby(X, 0.01, 100). divideby400(X) :- divideby(X, 0.0025, 400).