このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/812
#  [1] 授業単元:c 反復処理 
#  [2] 問題文(含コード&リンク): 
#  整数 a をキーボードから入力し,a が素数かどうか判断するプログラムを作成しなさい.(2〜a/2で整数aを割ったときに全ての値で割り切れなければ,aは素数である.) 
#  サイズm(m<=10)の整数型配列変数aをキーボードから受け取り,a[0],a[1],...,a[n-1]のうちの最大値をディスプレイに表示するプログラムを完成しなさい. 
#  

'要素数10以下のリスト要素をキーボードから受け取り,最大値をディスプレイに表示する' :-
        要素数10以下のリスト要素をキーボードから受け取り(1,L),
        最大値をディスプレイに表示する(L).

要素数10以下のリスト要素をキーボードから受け取り(N,[]) :-
        N > 10,!.
要素数10以下のリスト要素をキーボードから受け取り(_,[]) :-
        at_end_of_stream(user_input),!.
要素数10以下のリスト要素をキーボードから受け取り(N,[_数|R]) :-
        数を得る(数,_数),
        N_2 is N + 1,
        要素数10以下のリスト要素をキーボードから受け取り(N_2,R).

最大値をディスプレイに表示する(L) :-
        最大値を(L,_最大値),
        writef('最大値は %t です\n',[_最大値]).

最大値を([A|R],_最大値) :-
        最大値を([A|R],A,_最大値).

最大値を([],_最大値,_最大値).
最大値を([A|R],_現在の最大値,_最大値) :-
        A @> _現在の最大値,
        最大値を(R,A,_最大値).
最大値を([A|R],_現在の最大値,_最大値) :-
        A @=< _現在の最大値,
        最大値を(R,_現在の最大値,_最大値).