このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1276873238/693
#  問題 
#   
#  左端からn桁目の数のn乗を合計したものが元の数に等しい4桁以下の数をすべて求めよ。 
#  例 
#  89 => 8^1 + 9^2 = 89 OK 
#  123 => 1^1 + 2^2 + 3^3 = 14 NG 
# 

'左端からn桁目の数のn乗を合計したものが元の数に等しい4桁以下の数をすべて求める'(_4桁以下の数) :-
        between(0,9999,_4桁以下の数),
        number_chars(_4桁以下の数,_数字ならび),
        findsum(X,(
                    nth1(_nth,_数字ならび,_数字),
                    'A^_n'(_数字,_nth,X)),
                _4桁以下の数).

'A^_n'(A,_n,X) :-
        atom_number(A,N),
        X is truncate(N ^ X).