互いに素な数を数える (2)

http://d.hatena.ne.jp/lkozima/20090120/1232463881 の続き。また簡単な場合だけ。

d = 3 かつ n が素数の場合

d = 3 の場合で一番簡単なのが n が3 でない素数の場合です。これをまずやってみます。

まず最初に次のことに注意します。

n が素数のとき、0 < x < n なる x はすべて n と互いに素

単なる素数の定義ですが、このことから n が素数のとき今考えている問題は「区間 (0, n) を三等分したときにそれぞれの区間にいくつの整数が含まれるか」という問題と同じであることがわかります。

というわけで  |U(n, 3, i)|区間を三等分したそれぞれの部分にある整数の個数なので、以下のように表せます。

  •  |U(n, 3, 0)| = \left[ {n \over 3} \right]
  •  |U(n, 3, 1)| = \left[ {2n \over 3} \right] - \left[ {n \over 3} \right]
  •  |U(n, 3, 2)| = n - 1 - \left[ {2n \over 3} \right]

もう少し計算を進めてみます。n = 2, 3 のときは具体的に計算すればできるので、n > 3 を仮定しましょう。5 以上の素数は 6 で割ると 1 または 5 余ることから  n = 6k + 1 n = 6k + 5 の二通りが考えられます。

n = 6k + 1 の場合
  •  U(n, 3, 0) = \lbrace 1, \cdots, 2k \rbrace
  •  U(n, 3, 1) = \lbrace 2k + 1, \cdots, 4k \rbrace
  •  U(n, 3, 2) = \lbrace 4k + 1, \cdots, 6k \rbrace

普通に計算するだけ。 2k,\; 2k,\; 2k となります。

n = 6k + 5 の場合
  •  U(n, 3, 0) = \lbrace 1, \cdots, 2k + 1 \rbrace
  •  U(n, 3, 1) = \lbrace 2k + 2, \cdots, 4k + 3 \rbrace
  •  U(n, 3, 2) = \lbrace 4k + 4, \cdots, 6k + 4\rbrace

こっちも計算するだけ。今度は  2k+1,\; 2k+2,\; 2k+1 です。