このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1255709298/752 
#  正の整数nを2乗して得られる4桁の整数のうち、 
#  2種類の数字しか現れないものをすべて挙げなさい 

t2_93 :- 
    '正の整数nを2乗して得られる4桁の整数のうち、2種類の数字しか現れないものをすべて挙げる'(N),     
    write_formatted('%t\n',[N]), 
    fail. 
t2_93. 

'正の整数nを2乗して得られる4桁の整数のうち、2種類の数字しか現れないものをすべて挙げる'(N) :- 
    Max is trunscate(sqrt(9999)), 
    for(1,N,Max), 
    N1 is N * N, 
    number_chars(N1,L), 
    '2種類の数文字しか現れない'(L). 

'2種類の数文字しか現れない'([A|R]) :- 
    ならびから削除(A,R,R1), 
    \+(R1=[]), 
    all(R1,_).  

% *** user: 'ならびから削除' / 3 *** 
ならびから削除(_,[],[]) :- !. 
ならびから削除(_削除する要素,[_削除する要素|_残り対象ならび],_削除されたなら 
び) :- 
    ならびから削除(_削除する要素,_残り対象ならび,_削除されたならび),!. 
ならびから削除(_削除する要素,[_要素|_残り対象ならび],[_要素|_残り削除ならび]) 
:- 
    ならびから削除(_削除する要素,_残り対象ならび,_残り削除ならび),!.