You are on page 1of 1

%cititi elementele unui fisier, si afisati in fisierul divizori.

txt, divizorii
fiecarui numar citit pe o linie
divizor(K,N):-0 is N mod K.
lista_div(N,N,[N]).
lista_div(N,K,[K|Rest]):-divizor(K,N),K1 is K+1, lista_div(N,K1,Rest).
lista_div(N,K,Rest):-K1 is K+1, lista_div(N,K1,Rest).
divizori(N,L):-lista_div(N,1,L).

div:- see('in.txt'),tell('divizori.txt'), calcul, told, seen.


calcul:- read(X), X \= end_of_file, verific(X), calcul.
calcul.
verific(X):- divizori(X,L), append('divizori.txt'), write('Divizorii lui
'),write(X),write(' sunt: '), afis(L), nl, told.
verific(_).
afis([]).
afis([P|R]) :- write(P), tab(2), afis(R).

%5 fisiere de intrare in1...5, fiecare cu cate un termen pe fiecare linie. in unele


din ele apare pe o linie si atomul aici.
%stiind predicatul delete_file/1, stergeti fiserul care contine atomul 'aici'

ex:-see('in1.txt'), int([],L1),seen, see('in2.txt'), int([],L2),seen,


see('in3.txt'), int([],L3),seen,
see('in4.txt'), int([],L4),seen, see('in5.txt'), int([],L5),seen,

verif(L1,'in1.txt'),verif(L2,'in2.txt'),verif(L3,'in3.txt'),verif(L4,'in4.txt'),ver
if(L5,'in5.txt').
int(L,L1):- read(N), N \= end_of_file, append(L,[N],Rez), int(Rez,L1).
int(L,L).
verif(L,F):-member('aici',L),delete_file(F).
verif(_L,_F).

You might also like