「プロジェクトオイラー問92」の編集履歴(バックアップ)一覧に戻る
next_calc1([],0):-!. next_calc1([X|Xs],Result):- !, next_calc1(Xs,Re), Result is Re+(X-48)^2. next_calc(N,Result):- !, number_codes(N,L), next_calc1(L,Result). searchN(1):-!,fail. searchN(89):-!. searchN(N):- next_calc(N,N1), searchN(N1). list1(N):- between(1,600,N), not(searchN(N)). search(10000000,_,Ans):- !, write(Ans). search(N,List1,Ans):- next_calc(N,NN), not(member(NN,List1)), !, N1 is N+1, Ans1 is Ans+1, search(N1,List1,Ans1). search(N,List1,Ans):- !, N1 is N+1, search(N1,List1,Ans). main92:- findall(N,list1(N),List1), length(List1,Len), Ans is 600-Len, search(601,List1,Ans).