このディレクトリの索引
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]のうちの最大値をディスプレイに表示するプログラムを完成しなさい. 
#  

'整数 a をキーボードから入力し,a が素数かどうか判断する' :-
        '整数 a をキーボードから入力し'(_a),
        'a が素数かどうか判断する'(_a,_素数かどうかの判断),
        writef('%t は %t\n',[_a,_素数かどうかの判断]).

'整数 a をキーボードから入力し'(_a) :-
        整数を得る('整数 a',_a).

'a が素数かどうか判断する'(_a,素数である) :-
        _除数になりうる最大値 is _a // 2,
        'a が素数かどうか判断する'(2,_除数になりうる最大値,_a),!.
'a が素数かどうか判断する'(_,素数ではない).

'a が素数かどうか判断する'(_除数,_除数になりうる最大値,_) :-
        _除数 > _除数になりうる最大値,!.
'a が素数かどうか判断する'(_除数,_除数になりうる最大値,_a) :-
        \+(0 is _a mod _除数),
        _次の除数 is _除数 + 1,
        'a が素数かどうか判断する'(_次の除数,_除数になりうる最大値,_a).