アイゼンシュタイン素数

次のようにおきます。

$$ \omega=\frac{-1+i\sqrt3}{2},\qquad \omega^2+\omega+1=0. $$

アイゼンシュタイン整数は $\mathbb Z[\omega]$ の元です。そのノルムは 次のように表されます。

$$ N(a+b\omega) =(a+b\omega)(a+b\omega^2) =a^2-ab+b^2. $$

格子の一つの扇形領域を列挙する

ここでも、有限領域から正の座標の順序を区別しない対を選びます。三角格子をなす アイゼンシュタイン整数の残りの扇形領域は、六つの単元と共役によってこの領域の 対称なコピーとして得られます。

def eisensteinPoints : [(Integer, Integer)] :=
  matchAll take 10 nats as set integer with
    | $x :: $y :: _ -> (x, y)

def eisensteinInteger (x : Integer) (y : Integer) : MathValue :=
  x + y * w

def eisensteinNorm (x : Integer) (y : Integer) : Integer :=
  x ^ 2 - x * y + y ^ 2

def eisensteinNorms : [(MathValue, Integer)] :=
  map
    (\(x, y) -> (eisensteinInteger x y, eisensteinNorm x y))
    eisensteinPoints

定義関係とノルムを確認する

$\omega^2+\omega+1=0$ により、以下の出力の第1成分は0になります。 ほかの成分からは、たとえば $1+2\omega$ のノルムが $3$ であることを 確認できます。

(w ^ 2 + w + 1, eisensteinNorm 1 2, take 10 eisensteinNorms)
$(0, 3, \{(w + 1, 1), (2 w + 1, 3), (w + 2, 3), (3 w + 1, 7), (2 w + 2, 4), (w + 3, 7), (4 w + 1, 13), (3 w + 2, 7), (2 w + 3, 7), (w + 4, 13)\})$

素数ノルムで絞り込む

正の座標をもつこの扇形領域の内部では、整数として得られるノルムが素数ならば アイゼンシュタイン素数だと判定できます。ノルムが1の元 $1+\omega$ は単元なので、 自動的に除外されます。

def eisensteinPrimes : [(MathValue, Integer)] :=
  filter (\(_, n) -> isPrime n) eisensteinNorms
take 24 eisensteinPrimes
$\{(2 w + 1, 3), (w + 2, 3), (3 w + 1, 7), (w + 3, 7), (4 w + 1, 13), (3 w + 2, 7), (2 w + 3, 7), (w + 4, 13), (6 w + 1, 31), (5 w + 2, 19), (4 w + 3, 13), (3 w + 4, 13), (2 w + 5, 19), (w + 6, 31), (7 w + 1, 43), (5 w + 3, 19), (3 w + 5, 19), (w + 7, 43), (9 w + 1, 73), (7 w + 3, 37), (3 w + 7, 37), (w + 9, 73), (9 w + 2, 67), (7 w + 4, 37)\}$

有理素数は異なる振る舞いをする

通常の素数 $p\ne3$ は、$\mathbb Z[\omega]$ において $p\equiv1\pmod3$ のとき 分解し、$p\equiv2\pmod3$ のときは素数のままです。分岐する素数は3であり、 次の分解をもちます。

$$ 3=-\omega^2(1-\omega)^2. $$

その基本因子のノルムは $3$ です。

((1 - w) * (1 - w ^ 2), eisensteinNorm 1 (-1))
$(3, 3)$

まとめ

正方格子を三角格子に替えると、ノルムは $a^2+b^2$ から $a^2-ab+b^2$ へ 変わりますが、計算の考え方は同じです。代数的整数を構造的に列挙し、素数判定を $\mathbb Z$ 上の厳密な算術へ移します。

リンク

Egison 数学ノート目次に戻る