1. はじめに:この記事の使い方
この記事は,学部レベルの整数論を 一記事で俯瞰する ことを目的とする.各トピックについて,定義・主要定理・アルゴリズムを簡潔にまとめる.
使い方 :
初学者 → セクション順に読み進め,整数論の全体像を掴むとよい
復習・試験対策 → 目次から必要なセクションへジャンプされたい
競プロの確認 → セクション14「定理・アルゴリズム一覧」で主要結果を一覧できる
以下の依存関係図は,各トピックがどのように繋がっているかを示す.
graph TD
A["整数の整除と合同式"] --> B["GCDとユークリッド互除法"]
A --> C["素数と算術の基本定理"]
A --> D["合同式の応用と群構造"]
B --> D
C --> D
D --> E["原始根と離散対数"]
B --> F["中国剰余定理"]
D --> F
D --> G["二次剰余"]
E --> G
C --> H["数論的関数"]
B --> I["連分数"]
C --> J["素数の分布"]
C --> K["p進付値"]
C --> L["代数的整数"]
style A fill:#f5f5f5,stroke:#333,color:#000
style D fill:#f5f5f5,stroke:#333,color:#000
style F fill:#f5f5f5,stroke:#333,color:#000
style L fill:#f5f5f5,stroke:#333,color:#000
2. 整数の整除と合同式
整数 a , b ( b = 0 )に対して, a = b q となる整数 q が存在するとき, b は a を 整除する ( b ∣ a )という.
任意の整数 a と正の整数 b に対して, a = b q + r ( 0 ≤ r < b )を満たす整数 q , r が一意に存在する.
整数 a , b と正の整数 m に対して, m ∣ ( a − b ) のとき a ≡ b ( mod m ) と書き, a と b は法 m で 合同 であるという.
合同式は同値関係であり,加法・乗法と両立する:
a ≡ b ( mod m ) かつ c ≡ d ( mod m ) ならば a + c ≡ b + d ( mod m )
a ≡ b ( mod m ) かつ c ≡ d ( mod m ) ならば a c ≡ b d ( mod m )
→ 詳しくは :
https://interconnectd.app/articles/4wl50lHKf3yaBjvhB8cz
3. 最大公約数とユークリッド互除法
整数 a , b の 最大公約数 (greatest common divisor) g cd( a , b ) とは, a と b の共通の約数のうち最大のものである. g cd( a , b ) = 1 のとき a , b は 互いに素 であるという.
a ≥ b > 0 のとき, g cd( a , b ) = g cd( b , a mod b ) . a mod b = 0 のとき g cd( a , b ) = b .
整数 a , b に対して g cd( a , b ) = a x + b y を満たす整数 x , y が存在する.この x , y は拡張ユークリッド互除法で求められる.
主要アルゴリズム :
ユークリッド互除法 : g cd( a , b ) を計算. O ( log ( min ( a , b )))
拡張ユークリッド互除法 : g cd( a , b ) = a x + b y の x , y も同時に計算. O ( log ( min ( a , b )))
→ 詳しくは :
https://interconnectd.app/articles/rs0vpxGm9F1WMuEdIVep
4. 素数と算術の基本定理
2 以上の整数 p で, 1 と p 以外に正の約数を持たないものを 素数 (prime)という.素数でない 2 以上の整数を 合成数 という.
任意の 2 以上の整数 n は,素数の積として一意に表される(順序を除く): n = p 1 e 1 p 2 e 2 ⋯ p k e k
主要アルゴリズム :
→ 詳しくは :
https://interconnectd.app/articles/pxU4vxLqmnzS0rlSelaY
5. 合同式の応用と剰余類の群構造
法 m による合同関係で Z を類別したとき,各同値類を 剰余類 という.剰余類全体の集合を Z / m Z と書く.
( Z / m Z ) × = { a ∈ Z / m Z ∣ g cd( a , m ) = 1 } は乗法に関して群をなす.この群を 既約剰余類群 という.
φ ( m ) = ∣ ( Z / m Z ) × ∣ ,すなわち 1 から m までの整数のうち m と互いに素なものの個数を オイラーのトーシェント関数 という.
g cd( a , m ) = 1 ならば a φ ( m ) ≡ 1 ( mod m ) .
p が素数で p ∤ a ならば a p − 1 ≡ 1 ( mod p ) .
主要アルゴリズム :
→ 詳しくは :
https://interconnectd.app/articles/8EDswa8mNLlOJL9943vQ
6. 原始根と離散対数
g cd( a , m ) = 1 のとき, a k ≡ 1 ( mod m ) を満たす最小の正整数 k を a の法 m における 位数 (order)といい, ord m ( a ) と書く.
ord m ( a ) = φ ( m ) のとき, a を法 m の 原始根 (primitive root)という.
法 m の原始根が存在する ⟺ m = 1 , 2 , 4 , p k , 2 p k ( p は奇素数, k ≥ 1 )のいずれかである.
g が法 m の原始根のとき, g x ≡ a ( mod m ) を満たす x を a の 離散対数 (discrete logarithm) ind g a という.
法 m の原始根が存在するとき,原始根の個数は φ ( φ ( m )) 個である.
主要アルゴリズム :
→ 詳しくは :
https://interconnectd.app/articles/QT1r0wp8eh4G0tn5iYt0
7. 中国剰余定理と応用
m 1 , m 2 , … , m k が 互いに素 ( g cd( m i , m j ) = 1 , i = j )のとき,連立合同式 x ≡ a 1 ( mod m 1 ) , x ≡ a 2 ( mod m 2 ) , … , x ≡ a k ( mod m k )
は法 M = m 1 m 2 ⋯ m k で一意な解を持つ.
g cd( m i , m j ) = 1 ( i = j )のとき,環の同型 Z / M Z ≅ Z / m 1 Z × Z / m 2 Z × ⋯ × Z / m k Z
が成り立つ.
主要アルゴリズム :
→ 詳しくは :
https://interconnectd.app/articles/MzBDh6lTw2UgbpRhXnwJ
8. 二次剰余と相互法則
p を奇素数とする. g cd( a , p ) = 1 のとき, x 2 ≡ a ( mod p ) が解を持つならば a は p の 二次剰余 (quadratic residue),持たないならば 二次非剰余 という.
( p a ) = ⎩ ⎨ ⎧ 1 − 1 0 a が p の二次剰余 a が p の二次非剰余 p ∣ a
p , q を異なる奇素数とするとき ( q p ) ( p q ) = ( − 1 ) 2 p − 1 ⋅ 2 q − 1
( p − 1 ) = ( − 1 ) ( p − 1 ) /2 , ( p 2 ) = ( − 1 ) ( p 2 − 1 ) /8
主要アルゴリズム :
→ 詳しくは :
https://interconnectd.app/articles/5onlEYEhoT5nyddKXjzT
9. 数論的関数と乗法的関数
正の整数を変数とする複素数値関数 f : Z > 0 → C を 数論的関数 (arithmetic function)という.
f ( 1 ) = 1 であって, g cd( m , n ) = 1 ならば f ( mn ) = f ( m ) f ( n ) が成り立つとき, f を 乗法的 (multiplicative)という.任意の m , n で f ( mn ) = f ( m ) f ( n ) が成り立つとき 完全乗法的 という.
オイラー関数 φ ( n ) : n と互いに素な 1 ≤ k ≤ n の個数
約数関数 σ k ( n ) = ∑ d ∣ n d k .特に σ 0 ( n ) = d ( n ) (約数の個数), σ 1 ( n ) = σ ( n ) (約数の和)
メビウス関数 μ ( n ) : n = 1 のとき 1 , n が相異なる素数の積のとき ( − 1 ) k ( k は素因数の個数),それ以外は 0
F ( n ) = ∑ d ∣ n f ( d ) ならば f ( n ) = ∑ d ∣ n μ ( n / d ) F ( d ) .
( f ∗ g ) ( n ) = ∑ d ∣ n f ( d ) g ( n / d ) を ディリクレ畳み込み (Dirichlet convolution)という.乗法的関数のディリクレ畳み込みは再び乗法的である.
主要アルゴリズム :
→ 詳しくは :
https://interconnectd.app/articles/beTVUjLudO4MFFhXEdtN
10. 連分数とディオファントス近似
実数 α の (正則)連分数展開 とは α = a 0 + a 1 + a 2 + ⋱ 1 1 1 = [ a 0 ; a 1 , a 2 , … ]
の形の表示をいう. a 0 ∈ Z , a i ∈ Z > 0 ( i ≥ 1 )である. α が有理数 ⟺ 連分数展開が有限で終わる.
[ a 0 ; a 1 , … , a n ] を α の第 n 近似分数 (convergent) p n / q n という.漸化式 p n = a n p n − 1 + p n − 2 , q n = a n q n − 1 + q n − 2
で計算される.
α の近似分数 p n / q n は,分母が q n 以下の有理数のうち α に最も近いもの(最良有理近似)である.
α が二次無理数 ⟺ α の連分数展開が(ある項以降)周期的である.
D が平方数でない正の整数のとき, x 2 − D y 2 = 1 の正の整数解は D の連分数展開の近似分数から得られる.
→ 詳しくは :
https://interconnectd.app/articles/yz8tV2R0GkILVmuIijTg
11. 素数の分布
π ( x ) = # { p ≤ x ∣ p は素数 } を 素数計数関数 という.
π ( x ) ∼ ln x x ( x → ∞ )
すなわち lim x → ∞ x / l n x π ( x ) = 1 が成り立つ.
θ ( x ) = ∑ p ≤ x ln p , ψ ( x ) = ∑ p k ≤ x ln p を チェビシェフ関数 という.
十分大きな x に対して定数 c 1 , c 2 > 0 が存在して c 1 ln x x ≤ π ( x ) ≤ c 2 ln x x
g cd( a , m ) = 1 ならば, a , a + m , a + 2 m , … の中に素数は無限に存在する.
→ 詳しくは :
https://interconnectd.app/articles/2w0V0JCD7UJQrMbyRM6D
12. p進付値と局所的手法
素数 p と 0 でない整数 n に対して, n を割り切る p の最大べき指数を v p ( n ) と書き, p 進付値 ( p -adic valuation)という. v p ( 0 ) = + ∞ と定める.
∣ n ∣ p = p − v p ( n ) ( n = 0 ), ∣0 ∣ p = 0 を p 進絶対値 という.
v p ( ab ) = v p ( a ) + v p ( b )
v p ( a + b ) ≥ min ( v p ( a ) , v p ( b )) (超距離不等式に対応)
等号条件: v p ( a ) = v p ( b ) のとき v p ( a + b ) = min ( v p ( a ) , v p ( b ))
p 進絶対値に関する Q の完備化を p 進数体 Q p という. Z p = { x ∈ Q p ∣ ∣ x ∣ p ≤ 1 } を p 進整数環 という.
f ( x ) ∈ Z p [ x ] に対して, f ( a ) ≡ 0 ( mod p ) かつ f ′ ( a ) ≡ 0 ( mod p ) ならば, f ( α ) = 0 かつ α ≡ a ( mod p ) なる α ∈ Z p が存在する.
p が奇素数で g cd( a , p ) = 1 のとき, x 2 ≡ a ( mod p ) が解を持つ ⟺ x 2 = a が Q p で解を持つ(Henselの補題による持ち上げ).
→ 詳しくは :
https://interconnectd.app/articles/blTCmBbhP9Mfz9yGgKZD
13. 代数的整数入門
α ∈ C がモニック(最高次係数が 1 )な整数係数多項式の根であるとき, α を 代数的整数 (algebraic integer)という.代数的整数全体の集合は環をなす.
Q の有限次拡大 K を 代数体 (number field)という. K の元のうち代数的整数であるものの全体を O K と書き, K の 整数環 という.
K = Q ( d ) ( d は平方因子を持たない整数)のとき O K = { Z [ d ] Z [ 2 1 + d ] d ≡ 2 , 3 ( mod 4 ) d ≡ 1 ( mod 4 )
O K の イデアル a とは,加法について部分群であり O K ⋅ a ⊆ a を満たすものをいう.
O K の 0 でないイデアルは,素イデアルの積として一意に分解される(順序を除く): a = p 1 e 1 p 2 e 2 ⋯ p r e r
これはデデキント環の基本性質である.
イデアル類群 Cl ( O K ) (分数イデアルの同値類がなす群)の位数を 類数 (class number) h K という. h K = 1 ⟺ O K が一意分解整域(UFD)である.
類数を計算するにあたり,すべてのイデアル類はノルムが Minkowskiの限界 M K 以下の素イデアルの積で代表される:
ここで n = [ K : Q ] , r 2 は複素埋め込みの対の数, Δ K は判別式である.
→ 詳しくは :
https://interconnectd.app/articles/XxSYQHuhZr9FAejqkn4r
14. 定理・アルゴリズム一覧
学部整数論と競技プログラミングで登場する主要な定理とアルゴリズムの一行サマリーである.
基本定理 :
除法の定理 : a = b q + r ( 0 ≤ r < b )が一意に存在
算術の基本定理 :正整数は素数の積として一意に分解
ベズーの等式 : g cd( a , b ) = a x + b y なる整数 x , y が存在
フェルマーの小定理 : p ∤ a ⇒ a p − 1 ≡ 1 ( mod p )
オイラーの定理 : g cd( a , m ) = 1 ⇒ a φ ( m ) ≡ 1 ( mod m )
ウィルソンの定理 : p が素数 ⟺ ( p − 1 )! ≡ − 1 ( mod p )
中国剰余定理 :互いに素な法に関する連立合同式は一意に解ける
原始根の存在 : m = 1 , 2 , 4 , p k , 2 p k のときのみ存在
二次相互法則 : ( q p ) ( p q ) = ( − 1 ) 2 p − 1 ⋅ 2 q − 1
メビウスの反転公式 : F = f ∗ 1 ⇒ f = F ∗ μ
素数定理 : π ( x ) ∼ x / ln x
Dirichletの算術級数定理 : g cd( a , m ) = 1 なら a + km に素数は無限
代数的構造の定理 :
CRTの環同型 : Z / M Z ≅ ∏ Z / m i Z
Henselの補題 : mod p の単根は Z p の根に持ち上がる
イデアルの一意分解 :デデキント環で素イデアル分解は一意
Lagrangeの定理(連分数) :二次無理数 ⟺ 周期的連分数
主要アルゴリズム :
ユークリッド互除法(GCD): O ( log ( min ( a , b )))
拡張ユークリッド互除法(GCD + ベズー係数): O ( log ( min ( a , b )))
エラトステネスの篩(素数列挙): O ( n log log n )
試し割り法(素因数分解): O ( n )
Miller-Rabin(素数判定): O ( k log 2 n )
繰り返し二乗法(べき乗剰余): O ( log n )
CRT構成的解法: O ( k log M )
Garnerのアルゴリズム(CRT): O ( k 2 )
Baby-step Giant-step(離散対数): O ( p )
Tonelli-Shanks(平方根 mod p ): O ( log 2 p )
φ ( n ) の計算(素因数分解経由): O ( n )