素因数分解


整数全体の集合を Z と書きます。 Zユークリッド整域となります。 I を Zイデアルとし、 x をノルム N(x) が最小となるような I の元とします。 y を I の元とすると、 y = xq + r、r = 0 または N(r) < N(x) となる I の元 q、r が存在しますが、 r は I の元となるので、N(x) が最小ということから、r = 0 となり、 y は (x) に含まれるということになります。 したがって I = (x) となるので、Z単項イデアル整域となります。

p を Z既約元 とします。 I を p を含むイデアルとすると、 Z単項イデアル整域なので、 I = (a) となる Z の元 a が存在します。 よって p は (a) に含まれるので、p = ba となる Z の元 b が存在しますが、 p は既約元なので b または a は 単元 となります。 b が単元だとすると、(p) = (a) となり、a が単元だとすると、(a) = (1) となるので、(p) は 極大イデアル となります。 xy が (p) に含まれるとすると、 (x, p) = (p) または (x, p) = (1) なので、 (x, p) = (p) のとき x は (p) に含まれ、 (x, p) = (1) のとき y は (xy, p) = (p) に含まれるので、 (p) は 素イデアルとなります。 よって Z の既約元は 素元(Z の正の素元は素数といいます) となります。

a1、a2、...、ar、 b1、b2、...、bsZ の既約元とし、 a1a2...ar = ub1b2...bs (u は単元) が成り立っているとします。 上に述べたことから、 a1、a2、...、ar、 b1、b2、...、bsZ の素元となります。 このとき r = s であり、番号を付け替えれば、各 ai と bi は同伴になることを証明します。 r = 0 のときは、b1b2...bs = 1/u となるので s = 0 (そうでなければ、各 bi は単元となります) となります。 r > 0 とします。 a1 は素元なので、ある bn に対して a1|bn となります。 a1c = bn となる c が存在しますが、 bi は既約元なので、c は単元となります。 a2a3...ar = cb1b2...bs (bn を除いた積) であるので、r - 1 のときに主張が成り立っているとすると、 r = s であり、番号を付け替えると、各 ai と bi (a1 と bn は除く)は同伴になります。 a1 と bn は同伴なので、r のときも主張が成り立ちます。

a を既約元の積に分解することができない Z の(0 でも単元でもない)元 とします。 a は既約元ではないので、a = bc となるような、Z の 0 でも単元でもない元 b、c が存在します。 b、c が、どちらとも、既約元の積に分解することができるとすると、 a も既約元の積に分解することができることになります。 よって、 b、c が、どちらかは既約元の積に分解することができないので、 それを a1 とすると、(a) < (a1) となります (ここでは < は真部分集合を表します)。 これを繰り返すと、(a) = (a0) < (a1) < (a2) < ... となる a0、a1、a2、... をとることができます。 (a0)、(a1)、(a2)、... の和集合を A とすると、 Z単項イデアル整域なので、 A = (d) となります。 d は A に含まれるので、ある (an) に含まれることになって、 (an) = (an+1) となります。 これは (an) < (an+1) に反するので、 すべての Z の元は既約元の積に分解することができることがわかります。

以上のことから、 Z一意分解整域 であることがわかります。


整数を素数の積に分解します。 整数を入力して、[OK]を押してください。




最初の方の素数を求めることができます。 各項目を入力して、[OK]を押した後、[run]を押してください。
() = for all in while condition
= select in N or and
print elements in