PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 73 / 分数の数え上げ

n と d を正の整数として分数 n/d を考えよう。n < d かつ (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

1/3 と 1/2 の間には3つの分数が存在する。

では,d ≤ 12,000 について真既約分数をソートした集合では 1/3 と 1/2 の間に何個の分数があるか?

Problem 73 - Project Euler

各 d に対して n が何個あるか数えます。まず 1/3 < n/d < 1/2 を解くと

d/3 < n < d/2

d と n は自然数なので,これは次と同値です。

Floor[d/3] + 1 ≦ n ≦ Ceiling[d/2] - 1

この範囲で d と互いに素なものを数えればいいです。