23 lines
486 B
Prolog
23 lines
486 B
Prolog
:- use_module(library(clpfd)).
|
|
|
|
entier(zero).
|
|
entier(s(X)) :- entier(X).
|
|
|
|
add(X, zero, X).
|
|
add(X, s(Y), Z) :- add(s(X), Y, Z).
|
|
|
|
inf(zero, X) :- entier(X).
|
|
inf(s(X), s(Y)) :- inf(X, Y).
|
|
|
|
mult(zero, X, zero).
|
|
mult(s(Y), X, Z) :- mult(Y, X, W), add(W, X, Z).
|
|
|
|
div(A, B) :- inf(A, B), inf(X, B), mult(X, A, B).
|
|
div_w(X, Y) :- inf(s(X), Y), inf(s(s(zero)), X), div(X, Y).
|
|
prime(X) :- entier(X), \+ div_w(_, X).
|
|
|
|
peano(X, zero) :- X #= 0.
|
|
peano(X, s(P)) :- X #> 0, X #= Y + 1, peano(Y, P).
|
|
|
|
|