このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1320365280/712
#  [1] 授業単元: C言語実習 
#  [2] 問題文(含コード&リンク): 
#  整数値を読み取り,4桁毎に 兆,億,万 を挿入して表示せよ. 
#   
#  例 
#  入力:114514 
#  出力:11万4514 
#  入力:810 
#  出力:810 
#   
#  

'整数値を読み取り,4桁毎に 兆,億,万 を挿入して表示する' :-
       整数値を読み取り(_整数値),
        '4桁毎に 兆,億,万 を挿入して表示する'(['',万,億,兆],_整数値).

'4桁毎に 兆,億,万 を挿入して表示する'([_,_,_,_],0) :-
        writef('%t\n',[0]),!.
'4桁毎に 兆,億,万 を挿入して表示する'(_,0) :- !.
'4桁毎に 兆,億,万 を挿入して表示する'([_単位|R],N) :-
        M is N mod 10000,
        N_1 is N // 10000,
        '4桁毎に 兆,億,万 を挿入して表示する'(R,N_1),
        表示する(_単位,M).

表示する(_,0) :- !.
表示する('',M) :-
        writef('%t\n',[M]),!.
表示する(_単位,M) :-
        writef('%t%t',[M,_単位]).

整数値を読み取り(_整数値) :-
        writef('整数を入力して下さい : '),
        get_line(Line),
        整数値読み取り診断(Line,_整数値),!.
整数値を読み取り(_整数値) :-
        整数値を読み取り(_整数値).

整数値を読み取り診断(Line,_整数値) :-
        atom_to_term(Line,_整数値,_),
        integer(_整数値),!.
整数値を読み取り診断(Line,_整数値) :-
        writef('入力された %t からは整数値が得られません。再入力をお願いします。\n',[Line]),
        fail.