proisv([X|[]],X).
proisv([H|T],X):-proisv(T,X2), X is H*X2.
predikat(L1,L2,X):-nok(L1,L2,Y),proisv(Y,X).
jstart:- write(' Vvedite spisok L1: '),nl,read(LJAM1),nl,
write(' Vivod spiska L1= '),
write(LJAM1),nl,
write(' Vvedite spisok L2: '),nl,read(LJAM2),nl,
write(' Vivod spiska L2= '),
write(LJAM2),nl,
predikat(L1,L2,Z),
write(Z).
Вариант 2 (by Джамшут, работает):
% Bilet7 Variant 2
% Patched by JamshyT 14.01.13
% Special for AISTd-31 :)
% To start type: jstart.
nod(X,Y,Y):-Y=<X,0 is X mod Y .
nod(X,Y,Z):-X<Y,nod(Y,X,Z).
nod(X,Y,Z):-X>=Y, M is X mod Y,nod(Y,M,Z).