このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1357748713/78
#  [1] 授業単元:C言語 
#  [2] 問題 http://ime.nu/codepad.org/yV0KrZox 
#  
#  
#  問題5
#  任意の整数Xを入力し、Xの階乗の結果を表示するプログラムを作成しなさい。ただし、Xの階乗の計算は別関数で行い、入力と結果の表示はmain関数で行うようにすること。
#  ---------------------------------------------------------------------
#  X:5
#  5の階乗は 120です。
#  ---------------------------------------------------------------------

'任意の整数Xを入力し、Xの階乗の結果を表示するプログラムを作成しなさい。ただし、Xの階乗の計算は別関数で行い、入力と結果の表示はmain関数で行うようにすること。' :-
        main.

main :-
        '任意の整数Xを入力し、'(_X),
        'Xの階乗'(_X,_Xの階乗),
        の結果を表示する(_X,_Xの階乗).

'任意の整数Xを入力し、'(_X) :-
        整数を得る('任意の整数X',true,_X).

'Xの階乗'(0,1).
'Xの階乗'(1,1).
'Xの階乗'(_X,_Xの階乗) :-
        _X_1 is _X - 1,
        'Xの階乗'(_X_1,_Xの階乗_1),
        _Xの階乗 is _Xの階乗_1 * _X.

の結果を表示する(_X,_Xの階乗) :-
        writef('%t の階乗は %t です\n',[_X,_Xの階乗]).