このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354393458/361
#  お題:自然数Nが与えられたとき、Nの各桁の和をとり結果が一桁でなければ各桁の和
#  をとることを繰り返す。最後の一桁の数を求めよ。
#  例
#  412205725 -> 4+1+2+2+0+5+7+2+5=28
#  28 -> 2+8=10
#  10 -> 1+0=1 

'自然数Nが与えられたとき、Nの各桁の和をとり結果が一桁でなければ各桁の和をとることを繰り返す。最後の一桁の数を求めよ。'(N,N) :-
        N < 10,!.
'自然数Nが与えられたとき、Nの各桁の和をとり結果が一桁でなければ各桁の和をとることを繰り返す。最後の一桁の数を求めよ。'(N,X) :-
        'Nの各桁の和をとり'(N,0,N_2),
        '自然数Nが与えられたとき、Nの各桁の和をとり結果が一桁でなければ各桁の和をとることを繰り返す。最後の一桁の数を求めよ。'(N_2,X).

'Nの各桁の和をとり'(0,S,S) :- !.
'Nの各桁の和をとり'(N,S1,S) :-
        M is N mod 10,
        S2 is S1 + M,
        N_1 is N // 10,
        'Nの各桁の和をとり'(N_1,S2,S).