Excel VBA 数学教室ではアフィリエイトプログラムを利用して商品を紹介しています。

合成数Nは1より大きく√N以下の約数をもつ

今回からいよいよ素数や合成数に関する定理が登場します。

素数と合成数

まずは素数と合成数を定義しておきます。

1 以外の自然数で、1 と 自身以外に正の約数をもたない数を素数 (prime number)、1 でも素数でもない数を合成数 (composite number)と定義する。

合成数については「1 と自分自身以外に最低でも 1 つの約数をもつ」と言いかえることもできます(後述する定理 B1 の証明でこの事実を用います)。

素数を小さい順に並べてみます。
2,3,5,7,11,13,17,19
合成数は 1 と素数以外の数なので、素数同士の間隔を埋めるように
4,6,8,9,10,12,14,15
となります。1 は素数でも合成数でもないので、どちらにも含まれていません。つまり自然数は 1 と素数と合成数で構成されます。

合成数Nは1より大きく√N以下の約数をもつ

合成数 12 の約数を全て並べてみます。
1,2,3,4,6,12
12 の平方根は 3.464 ですが、この値より小さく、1 以外の約数 (2 と 3) が存在しています。実はどんな合成数 N についても、1 より大きく N 以下の約数をもつことが知られています。

【定理B1】合成数 N1<aN を満たすような約数 a を 1 個以上もつ。

【証明】N は合成数なので、1 ではない 2 つの数 ab の積に分解できるはずです。すなわち小さくないほうを b として
N=a×b(1<ab,a,bZ)
と表すことができます。1<ab なので
N=a×ba×a=a2
すなわち aN が示されました。(証明終)

1より大きな整数は1個以上の素因数をもつ

たとえば 100 という数を適当に分解して
100=4×25
と表したとします。さらに 4 も分解してみると
4=2×2
というように素数 2 が現れました。このように、合成数の中に積の形で含まれる素数のことを素因数とよびます。一般に 1 より大きな整数は、上のように積の形に分解していけば必ずどこかで素因数が現れます。あまりに自明なことではありますが、これも定理として載せておきます。

【定理B2】1 より大きな整数 N は 1 個以上の素因数をもつ。

【証明】N が素数であれば、N 自身が素因数です。N が合成数であれば、
N=a1×b1(1<a1<N)
のように積の形に分解することができます。a1 が素数であれば、それが素因数です。a1 が合成数であれば、
a1=a2×b2(1<a2<a1)
のように積の形に分解することができます。a2 が素数であれば、それが素因数です。これを繰り返していくと ak は単調減少かつ ak1 なので、有限回操作で必ず素数となります。(証明終)

整数abが素数pで割り切れるならば、a,bのいずれかはpで割り切れる

「36 = 4 × 9 は 2 で割り切れるので、4 は素数 2 で割り切れます」というような当たり前のことを述べているのが次の定理です。

【定理B3】素数 p, 整数 a,b について
p|abp|ap|bが成り立つ。

は論理和の記号、すなわち「または」を表す記号です。ABAB がともに成り立つ場合も含みます。したがって、たとえば「 108 = 9 × 12 は素数 3 で割り切れて、9 も 12 も 3 で割り切れる」というようなことも含まれています。

【証明】証明には定理A11
(a,b)=1,a|bca|c
を用います。素数 p の約数は 1 か p です。p|a ならば定理は成り立っています。ap で割り切れないときは
(p,a)=1,p|ab
なので p|b となります。(証明終)

整数nが素数p,qで割り切れるならばnはpqで割り切れる

次の定理もほぼ自明としてよいぐらいの事実です。たとえば「 20 は相異なる素数 2 と 5 で割り切れるならば、20 は 2 × 5 = 10 で割り切れる」というようなことを述べています。

【定理B4】素数 p,q(pq), 整数 n について
p|n,q|npq|nが成り立つ。

【証明】この定理の証明にも定理A11
(a,b)=1,a|bca|c
を用います。p|n,q|n なので整数 a,b を用いて
n=pa=qb
と表すことができます。(p,q)=1,p|qb なので p|b であり、整数 k を用いて
b=pk,n=pqk
と表せます。よって pq|n となります。(証明終)
 

1より大きな整数は有限個の素数の積で表せる

たとえば 60 という数は
60=22×3×5
というように素数の積で表すことができます。そして素数の順序を考えなければ、この分解方法はただの一通りしかありません。これも当たり前のことではありますが、数論の根幹をなすような重要な定理です。

【定理B5】1 より大きい任意の整数 n は有限個の素数の積で表せる。またこのとき素因数分解の順序を無視すれば、その分解の仕方は唯一通りである。

【証明】1 より大きい整数が有限個の素数の積で表せることを証明します。

n が素数であれば、n=n というように、素数 1 個の積で表せるので定理は成り立ちます。したがって n が素数でない場合を考えます。証明には数学的帰納法を用います。まず最小の合成数である 4 について、4 よりも小さく 1 よりも大きな 2, 3 はどちらも素数なので素因数分解できます。次に 1 より大きく n より小さい整数は全て素因数分解できるような n を選びます。そのとき、n の 1 以外の約数のうち最小数は素数となります。それを p とすると、正整数 a を用いて
n=pa
と表すことができます。このとき a<n なので仮定により
a=p1p2pk
と表せます。よって
n=pa=pp1p2pk
となって n も素因数分解することができます。n=4 は素因数分解できるので、次の合成数 n=6 も素因数分解できて、またその次の合成数 n=8 も素因数分解できて … これを繰り返して全ての合成数 n について素因数分解できます。(証明終)

次に素因数分解の仕方が一通りであることを証明します。
n が 2 通りに素因数分解されたと仮定します。
n=p1p2pj=q1q2qk
p1,p2,,pj, q1,q2,,qk は全て素数です。重複があっても構いません。ここで定理B3

【定理B3】素数 p, 整数 a,b について
p|abp|ap|b

により、p1q1,q2,,qk のうちどれかを割り切ることができます。
p1|q1q2qk
q の添え字の番号はどのように入れ替えてもかまわないので、右辺の素因数のうち、p1 で割り切るものを q1 に選びます。しかし p1,q1 はともに素数なので p1=q1 です。そこで、この数で両辺を割ると
p2p3pj=q2q3qk
となります。同じように p2=q2,p3=q3 として次々に割っていくと、仮に j>k とした場合、
pk+1pj=1
となってしまいますが、これは明らかに矛盾しています。よって j=k, すなわち素因数分解の方法は唯の一通りであることが示されました。(証明終)

【おすすめ記事】 ≫ Excelで約数表を作成する

標準素因数分解

ある数 n を素因数分解したとき、同じ種類の素因数をまとめて

n=p1m1p1m1pkmk

と書くような記述の仕方を標準素因数分解とよびます。たとえば 480200 を標準素因数分解すると
480200=235274
のように表すことができます。

素因数分解を用いてGCDとLCMを計算する

素因数分解を用いると最大公約数 (GCD) と最小公倍数 (LCM) を簡単に計算することができます。たとえば 126 と 600 をそれぞれ素因数分解すると
126=21×32×50×71600=23×31×52×70
となります。比較しやすくするために、指数部分が 0 や 1 である場合も書いてあります。最大公約数は各因数からベキ指数の小さいほう(正確に言うと大きくないほう)を選んで掛け合わせます:
(126,600)=21×31×50×70=6
最小公倍数はベキ指数の大きいほう(正確に言うと小さくないほう)を選んで
{126,600}=23×32×52×71=12600
と計算できます。一般には次のように計算します。

【定理B6】2 つの正整数 a,b を素因数分解して
a=p1u1p2u2piuib=p1v1p2v2piviのように表せたとする。ただし ui,vi は 0 または正整数。このとき
min(ui,vi)=simax(ui,vi)=tiとおくと、最大公約数と最小公倍数はそれぞれ
(a,b)=p1s1p2s2pisi{a,b}=p1t1p2t2pitiとなる。

ここで min(a,b)a,b の最小値、max(a,b)a,b の最大値を表します。詳しくは 小さくない数と大きくない数 の記事を参照してください。

エクセルや数学に関するコメントをお寄せください