search2(_,[],[],Num,Num):-
!.
search2([D1,D2],Seed,[Div|Divs],Num,Result):-
select(D3,Seed,Seed1),
N is D1*100+D2*10+D3,
N mod Div=:=0,
Num1 is Num*10+D3,
search2([D2,D3],Seed1,Divs,Num1,Result).
search(Num2):-
Seed=[0,1,2,3,4,5,6,7,8,9],
select(D1,Seed,Seed1),
D1>0,
select(D2,Seed1,Seed2),
select(D3,Seed2,Seed3),
Num is D1*100+D2*10+D3,
search2([D2,D3],Seed3,[2,3,5,7,11,13,17],Num,Num2).
sum([],Sum,Sum):-!.
sum([X|Xs],Sum,Result):-
Sum1 is Sum+X,
sum(Xs,Sum1,Result).
main:-
findall(E,search(E),Es),
sum(Es,0,Ans),
write(Ans).
最終更新:2014年12月05日 02:49