このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1267796762/657
#  【 課題 】
#  (3)1から1000までにある素数を全て出力するプログラム。 
#   
#  【 形態 】http://ime.nu/www.javadrive.jp/install/jdk/で設定したのですが1でしょうか…  
#  【 期限 】12月16日です  
#  【 Ver  】1.6.0_22  
#  【 補足 】ぎりぎりで丸投げですがよろしくお願いします! 
# 
# 

'1から1000までにある素数を全て出力する' :-
        素数生成(1000,L),
        append(_,[_素数|R],L),
        write_formatted('%t\n',[_素数]),
        R = [].

素数生成(N,L) :-
        findall(M,for(2,M,N),L1),
        エラトステネスの篩(L1,L).

エラトステネスの篩(_,[],[]) :- !.
エラトステネスの篩(N,[A|R1],R2) :-
        0 is A mod N,
        エラトステネスの篩(N,R1,R2),!.
エラトステネスの篩(N,[A|R1],[A|R2]) :-
        エラトステネスの篩(N,R1,R2).

エラトステネスの篩([],[]) :- !.
エラトステネスの篩([A|R1],[A|R2]) :-
        エラトステネスの篩(A,R1,L),
        エラトステネスの篩(L,R2).