fact(1,1):-!. fact(N,Result):- N1 is N-1, fact(N1,Re), Result is Re*N. search([X],_,_):-!, write(X). search(Xs,No,Turn):- fact(Turn,R), Turn1 is Turn-1, Pos is No // R, No1 is No mod R, nth0(Pos,Xs,E), select(E,Xs,Xs1), write(E), search(Xs1,No1,Turn1). main:- No is 1000*1000-1, search([0,1,2,3,4,5,6,7,8,9],No,9).