このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1312201995/8
#  [1] 授業単元: プログラミング 
#  [2] 問題文(含コード&リンク):自然数n>0を入力し、その自明でない約数(1とn以外の約数)をひとつ出力するプログラムを作成せよ。 
#  

'自然数n>0を入力し、その自明でない約数(1とn以外の約数)をひとつ出力する' :-
        自然数を入力し(_n),
        'その自明でない約数(1とn以外の約数)をひとつ出力する'(_n).

'その自明でない約数(1とn以外の約数)をひとつ出力する'(_n) :-
        _m is _n // 2,
        _m >= 2,
        for(_m,N,2),
        Mod is _n mod N,
        Mod = 0,
        writef('%t\n',[N]).
'その自明でない約数(1とn以外の約数)をひとつ出力する'(_n) :-
        writef('%tは素数です\n',[_n]).

自然数を入力し(_n) :-
        write('自然数を入力してください : '),
        get_line(Line),
        自然数入力診断(Line,_n),!.
自然数を入力し(_n) :-
        自然数を入力し(_n).

自然数入力診断(Line,_n) :-
        atom_to_term(Line,_n,_),
        integer(_n),
        _n > 0,!.
自然数入力診断(Line,_n) :-
        writef('入力された%tからは自然数nが得られません。再入力をお願いします。\n',[Line]),
        fail.