「プロジェクトオイラー問71」の編集履歴(バックアップ)一覧に戻る

プロジェクトオイラー問71 - (2014/03/02 (日) 04:03:30) のソース

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2071

*Problem 71 「順序分数」 †
nとdを正の整数として, 分数 n/d を考えよう. n<d かつ HCF(n,d)=1 のとき, 真既約分数と呼ぶ.

d ≤ 8について既約分数を大きさ順に並べると, 以下を得る:

1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 3/8, 2/5, 3/7, 1/2, 4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 7/8
3/7のすぐ左の分数は2/5である.

d ≤ 1,000,000について真既約分数を大きさ順に並べたとき, 3/7のすぐ左の分数の分子を求めよ.

解法
ファレイ数列でそのまま計算します。


 calc(LU,LD):-
 	LD+7>1000000,
 	!,
 	write(LU).
 calc(LU,LD):-
  	LU1 is LU+3,
 	LD1 is LD+7,
 	calc(LU1,LD1).
 main71:-
 	calc(2,5).