/* exo 1*/ concat([],L,L). concat([X|L],L1,[X|L2]) :- concat(L,L1,L2). dernier1(X,L) :- concat(_,[X],L). dernier2(X,[X]). dernier2(X,[_|L]) :- dernier2(X,L). longueurpaire([]). longueurpaire([_|L]) :- longueurimpaire(L). longueurimpaire([_|L]) :- longueurpaire(L). renverse1([],[]). renverse1([X|L],L1) :- renverse1(L,L2), concat(L2,[X],L1). /* exo 2 */ insert(X,[],[X]). insert(X,[Y|R],[X,Y|R]):-X=Y, insert(X,R,N). tri([],[]). tri([X|L],R):-tri(L,R1),insert(X,R1,R). trie([]). trie([X]). trie([X,Y|L]):-X=0, M is N-1,afficher(M),nl,write(N). /* exo 5*/ boucle:- write('choisir un entier'), nl, read(X), test(X). test(0):-!. test(_):-boucle. /* exo 6 */ /* a(n,m) reussit si m est la somme des entiers naturels jusqu'a n*/ /* cas particulier: pour n= 5 on a m= 15 */ /* b(n,m) reussit si m est la somme des n premier nombres impairs*/ /* autrement dit, si m=n^2*/ /* cas particulier: pour n= 9 on a m= 81 */ /* c(n,m) reussit si m est 2^n*/ /* cas particulier: pour n= 7 on a m= 128 */ /* d(n,m,l) reussit si l=n^m*/ /* cas particulier: pour n= 5, m=3 on a l=125*/