プロジェクトオイラー問73

Problem 73 「ある範囲内の分数の数え上げ」 †
1/3~1/2の間に分母が12000以内の既約分数はいくつあるか?

計算時間6秒もかかるコード。
遅いな。

calc(LD,RD,_):-
	LD+RD>12000,
	!,
	fail.

calc(_,_,1).
calc(LD,RD,Result):-
	MD is LD+RD,
	calc(LD,MD,Result).
calc(LD,RD,Result):-
	MD is LD+RD,
	calc(MD,RD,Result).

main:-
	findall(E,calc(3,2,E),Es),
	length(Es,Ans),
	write(Ans).
最終更新:2014年12月12日 18:10