This repository has been archived on 2026-03-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
TP-PL/TP2.pl
Super_JK fe29a58e22 TP 2 + 3
2022-03-29 17:16:39 +02:00

66 lines
808 B
Prolog

% L2
% Q1
fibonacci(0,1).
fibonacci(1,1).
fibonacci(X,Y):-
X > 1,
N is X - 1,
M is X - 2,
fibonacci(N,R),
fibonacci(M,S),
Y is S +R.
% Q2
fibiter(X,Y):-
fibiter(X,Y,1,1).
fibiter(0,X,X,_).
fibiter(X,Y,Z,V):-
X >0,
M is X -1,
NV is Z + V,
fibiter(M,Y,V,NV).
% Q3
pgcd(A,0,A):-!.
pgcd(A,A,A):-!.
pgcd(0,A,A):-!.
pgcd(A,B,X):-
A > B,
C is A mod B,
pgcd(C,B,X).
pgcd(A,B,X):-
B > A,
C is B mod A,
pgcd(A,C,X).
% L3
% Q2
member(X,[X|_]).
member(X,[_|L]) :-
member(X,L).
% Q3
subset([],_).
subset(L1,L2):-
[X | L] = L1,
member(X,L2),
subset(L,L2).
% Q4
sublist(_,[]):-false.
sublist([],_).
sublist([X | L1],[Y | L2]):-
X = Y,
subset(L1,L2).
sublist([X | L1],[Y | L2]):-
X \= Y,
subset([X | L1],L2).