Toggle navigation
Egison
ドキュメント
デモ
オンライン・デモ
ポーカーの役判定
麻雀の上がり判定
双子素数の列挙
ツリー
グラフ
3-SATを解く乱択アルゴリズム
時系列データ解析
オンライン・ツール
オンライン Egison
オンライン・チュートリアル
数式処理
ブログ
コミュニティ
アイゼンシュタイン素数
Apr 13 2016
`ZZ[w]`の素数の性質を検証する
-- Gaussian primes: primes in Z[i] -- Generate Gaussian integers and their norms def gaussianNorms : [(MathExpr, MathExpr)] := map (\(x, y) -> (x + y * i, (x + y * i) * (x - y * i))) (matchAll take 10 nats as set integer with | $x :: $y :: _ -> (x, y)) assertEqual "first few Gaussian integers with norms" (take 10 gaussianNorms) [(1 + i, 2), (1 + 2 * i, 5), (2 + i, 5), (1 + 3 * i, 10), (2 + 2 * i, 8), (3 + i, 10), (1 + 4 * i, 17), (2 + 3 * i, 13), (3 + 2 * i, 13), (4 + i, 17)] -- Filter to get Gaussian primes (those with prime norm) def gaussianPrimes : [(MathExpr, MathExpr)] := filter (\(_, n) -> isPrime n) (map (\(x, y) -> (x + y * i, (x + y * i) * (x - y * i))) (matchAll take 10 nats as set integer with | $x :: $y :: _ -> (x, y))) assertEqual "Gaussian primes" gaussianPrimes [(1 + i, 2), (1 + 2 * i, 5), (2 + i, 5), (1 + 4 * i, 17), (2 + 3 * i, 13), (3 + 2 * i, 13), (4 + i, 17), (1 + 6 * i, 37), (2 + 5 * i, 29), (5 + 2 * i, 29), (6 + i, 37), (2 + 7 * i, 53), (4 + 5 * i, 41), (5 + 4 * i, 41), (7 + 2 * i, 53), (1 + 10 * i, 101), (3 + 8 * i, 73), (5 + 6 * i, 61), (6 + 5 * i, 61), (8 + 3 * i, 73), (10 + i, 101), (3 + 10 * i, 109), (4 + 9 * i, 97), (5 + 8 * i, 89), (8 + 5 * i, 89), (9 + 4 * i, 97), (10 + 3 * i, 109), (7 + 8 * i, 113), (8 + 7 * i, 113), (7 + 10 * i, 149), (10 + 7 * i, 149), (9 + 10 * i, 181), (10 + 9 * i, 181)]
リンク
Egison 数学ノート目次に戻る
This website in other langauge:
English
,
日本語