このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/172
#  C言語の問題なんですが 
#   
#  20個の素数を表示し、それに一つ目から番号つけろ 
#   
#  って内容の問題です。 
#   
#  最終的に 
#   
#  1  2 
#  2  3 
#  3  5 
#  4  7 
#  5  11 
#  . 
#  . 
#  . 
#  20  71 
#   
#  こうなればいいようです。 
#  素数だけならbreakで出せたんですが、どうも番号の振り方がわかりません。よろしくお願いします。 
# 
# 

'20個の素数を表示し、それに一つ目から番号つける' :-
        '20個の素数を表示し、それに一つ目から番号つける'(0,2).

'20個の素数を表示し、それに一つ目から番号つける'(20,_) :- !.
'20個の素数を表示し、それに一つ目から番号つける'(Nth_1,N) :-
        'Nが素数なら何個目であるかと共に表示する'(Nth_1,N,Nth_2,N_2),
        '20個の素数を表示し、それに一つ目から番号つける'(Nth_2,N_2).        
'20個の素数を表示し、それに一つ目から番号つける'(Nth_1,N) :-
        N_2 is N + 1,
        '20個の素数を表示し、それに一つ目から番号つける'(Nth_1,N_2).

'Nが素数なら何個目であるかと共に表示する'(Nth_1,N,Nth_2,N_2) :-
        'Nは素数'(2,N),
        Nth_2 is Nth_1 + 1,
        wriref('%t %t\n',[Nth_2,N]),
        N_2 is N + 1.

'Nは素数'(N,N) :- !.
'Nは素数'(M,N) :-
        \+(0 is N mod M),
        M_2 is M + 1,
        'Nは素数'(M_2,N).