このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1276810079/254
#  [1] 授業単元:情報処理学 
#  [2] 問題文(含コード&リンク): 
#  do-while文を用いて、キーボードから入力された値が素数であるかどうかを 
#  判別するプログラムを作成せよ。入力された値が素数の場合は"素数"と出力し、 
#  素数でない場合は最小の因数を出力せよ。  
#  

キーボードから入力された値が素数であるかどうかを判別する :-
        get_integer(N),
        素数であるかどうかを判別する(N).

素数であるかどうかを判別する(N) :-
        素数ではない(N,_最小因子),
        write_formatted('%tは素数ではありません。最小因子は%tです。\n',[N,_最小因子]),!.
素数であるかどうかを判別する(N) :-
        write_formatted('%tは素数です。\n',[N]).

素数ではない(N,_最小因子) :-
        N2 is N // 2,
        for(2,M,N2),
        0 is N mod M,
        _最小因子 = M,!.