%-- ­á ª, ó ¦ ÔÔñ½ ãØ·ãÆÖÒ á„¢¨á a(1,2). a(2,3). a(4,3). a(2,5). a(5,6). a(1,6). a(4,5). not_in(_,[]). not_in(X,[X|_]):-!,fail. not_in(X,[_|A]):-not_in(X,A). len([],0). len([_|B],I):-len(B,K),I is K+1. %-- ÝáÖë¨áÆ  ãÒ¨éÔÖãå· ë¨áõ·Ô g(X,Y):-a(X,Y). g(X,Y):-a(Y,X). %-- ÝÖ·ãÆ Øçå· ë ¬á ª¨ ë ¬Ð碷Ôç %-- P(X,Y,P,V), ¬¦¨ %-- X - Ô û ÐíÔ Þ ë¨áõ·Ô , Y - ÆÖÔ¨ûÔ Þ ë¨áõ·Ô , P - Øçåí, %-- V - ãÖ¦¨áé·å ãØ·ãÖÆ ó ¦¨½ãåëÖë ÔÔñµ ë¨áõ·Ô (÷å· ë¨áõ·Ôñ Ô¨ ¢ç¦çå %-- ØÖëåÖáÔÖ ·ãØÖÐíóÖë åíãÞ Øá· ØÖ·ãƨ) p(X,X,[X],V):-not_in(X,V). p(X,Y,[X|P],V):-not_in(X,V),g(X,Z),p(Z,Y,P,[X|V]). %-- ÝÖ·ãÆ ¤·ÆÐÖë ó ¦ ÔÔÖ½ ¦Ð·ÔÔñ, Øá· N=ÆÖÐ-ëÖ ë¨áõ·Ô %-- ØÖÐçû·Ò ­ Ò·ÐíåÖÔÖë ¤·ÆÐ cycle(Y,N):-len(Y,N),p(X,Z,Y,[]),g(Z,X). %-- ô ØçãÆ %-- consult(['g.pro']). %-- p(1,6,X,[]). %-- cycle(Y,6).