このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1364700745/821
#  [1] 授業数学の問題をC言語で解く 
#  [2] 問題 
#  整数xを0から100000までの整数として,xが3つの素数の和で表現できるなら 
#  その三素数を出力するプログラムを作成せよ。複数組み合わせの場合最初に 
#  見つけたものを出力せよ。 
#  [3.1] 7 
#  [3.2] gcc 
#  [3.3] C 
#  [4] 期限:25日 
#  [5] その他制限: 純粋Cライブラリ。 
# 

'整数xを0から100000までの整数として,xが3つの素数の和で表現できるならその三素数を出力するプログラムを作成せよ。複数組み合わせの場合最初に見つけたものを出力せよ。'(_x) :-
        findall(N,between(1,100000,N),L1),
        エラトステネスの篩(L1,_100000以下の素数ならび),
        組合せ(_100000以下の素数ならび,3,[N1,N2,N3]),
        _x is N1 + N2 + N3,
        writef('%t,%t,%t\n',[N1,N2,N3]),!.

組合せ(X,1,[A]) :-
        member(A,X) .
組合せ([A|Y],N,[A|X]) :-
        N > 1,
        M is N - 1,
        組合せ(Y,M,X) .
組合せ([_|Y],N,A) :-
        N > 1,
        組合せ(Y,N,A).