このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/654
#  [1] 授業単元:C言語演習 
#  [2] 問題文: 
#  http://ime.nu/codepad.org/tsdgDjQy 
#  上記のプログラムは整数nを入力すると1からnまでの和を出力するプログラムである。 
#  このプログラムのfunc関数に1からnまでの積を計算する処理を追加せよ。 
#  そしてリスト全体として、整数nを入力すると1からn和と積を出力するプログラムに修正せよ。 
#  

'整数nを入力すると1からnまでの和と積を出力する'(_n,_1から_nまでの和,_1から_nまでの積) :-
        '整数nを入力すると'(_n),
        '整数nを入力すると1からnまでの和と積を'(_n,_1から_nまでの和,_1から_nまでの積),
        出力する(_n,_1から_nまでの和,_1から_nまでの積).

'整数nを入力すると'(_n) :-
        整数を得る(n,_n).

'整数nを入力すると1からnまでの和と積を'(1,1,1) :- !.
'整数nを入力すると1からnまでの和と積を'(N,_和,_積) :-
        N_1 is N - 1,
        '整数nを入力すると1からnまでの和と積を'(N_1,_和_1,_積_1),
        _和 is _和_1 + N,
        _積 is _積_1 * N.

出力する(_n,_1から_nまでの和,_1から_nまでの積) :-
        writef('%tから%tまでの 和は %t,積は%t です。\n',[1,_n,_1から_nまでの和,_1から_nまでの積]).