1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
:-module(pgcd,[main/0,ppgcd/2,gcd/3]).
:-use_module(library(prologbeans)).
:- use_module(library(charsio),[read_from_chars/2]).
main:- register_query(pgcd(L,G), ppgcd(L,G)),
start.
% ppgcd(L,G):-read_from_chars(L, LL), slic(LL,1,X),slic(LL,2,Y). %,gcd(X,Y,G).
ppgcd(L,G):-read_from_chars(L, LL),
aeee(LL,G).
aeee([X,Y],G):-gcd(X,Y,G).
gcd(X,0,X) :- X > 0.
gcd(X,Y,G) :- Y > 0, Z is X mod Y, gcd(Y,Z,G).
% Declare gcd as an arithmetic function; so you can use it
% like this: ?- G is gcd(36,63).
% tiré de https://staff.hti.bfh.ch/hew1/informatik3/prolog/p-99/
%%
% ( c ) john DEUA
%%
:- arithmetic_function(gcd/2). |
Partager