合成数を2つの平方数の和で表す

3 min読了の目安(約2900字IDEAアイデア記事

はじめに

合成数を2つの平方数の和で表すとは,具体的に以下の通りである.

45=6^2+3^2\\ 100=6^2+8^2

この記事では合成数が2つの平方数の和で表すことのできる条件と,その条件を満たす場合どのようにして2つの平方数を求めるのかということについて記述する.

2つの平方数の和で表すことのできる合成数の条件

2つの平方数の和で表すことのできる合成数nの条件は,nを素因数分解し平方数の因数mとそれ以外の因数kで表した時にk\neq 3 (\!\!\!\mod 4)となることである.例えば4545=3^2\cdot 5と因数分解される.ここにおいて平方数の因数で括ることのできなかった素因数k5となる.5\neq3(\!\!\!\mod 4)であるので,条件を満たす.以下に具体例を示す.

例1.
30=2\cdot3\cdot5

2\neq 3(\!\!\!\mod4),5\neq 3(\!\!\!\mod4)であるが,3\equiv 3(\!\!\!\mod 4)であるので,30は二つの平方数の和で表すことはできない.

例2.
130=2\cdot5\cdot13

2\not\equiv 3(\!\!\!\mod4),5\not\equiv 3(\!\!\!\mod4),13\not\equiv3(\!\!\!\mod 4)であるので,1307^2+9^2,あるいは3^2+11^2として二つの平方数の和で表すことができる.

例3.
45=3^2\cdot5

例1において3\equiv3(\!\!\!\mod 4)であるため,3を因数にもつ30を二つの整数の平方和で表すことはできないことを確認した.しかし,3^2のように平方数として括れる場合はその限りではない.残りの因数5についても5\not\equiv3(\!\!\!\mod 4)であるので,4545=3^2+6^2のように二つの平方数の和として表すことができる.

条件を満たす場合の2つの平方数和での表し方

2つの平方数の和で表すことのできる合成数の条件について確認した.では合成数nをその条件を満たす因数p,qの積で表すことができた時に,どのようにしてn2つの平方数の和として表すのだろうか.

p\not\equiv3(\!\!\!\mod 4)を満たす素数pはより,p=p_1^2+p_2^2のように自然数p_1とp_2の平方数の和で表すことができるのであった.(これについてはここで証明しない) つまり,合成数nについて,平方数で括られた因数mを持つ場合は

\begin{aligned} n&=m^2\cdot p \\ &=m^2\cdot(p_1^2+p_2^2)^2 \end{aligned}

と表すことができる.

さらに,平方数で表される因数を括った数mについてはmが素数の場合と合成数の場合が考えられる.

mが素数である場合は

\begin{aligned} n&=m^2\cdot p\\ &=m^2(p_1^2+p_2^2)\\ &=m^2p_1^2+m^2p_2^2\\ &=(mp_1)^2+(mp_2)^2 \end{aligned}

より2つの平方数の和で表すことができる.例えば,45=3^2\cdot5のように(素数)^2\cdot(素数)で表される数については

\begin{aligned} 45&=3^2\cdot 5\\ &=3^2(1^2+2^2)\\ &=3^2\cdot 1^2+3^2\cdot2^2\\ &=3^2+6^2 \end{aligned}

のようにして2つの平方数の和で表すことができる.

mが合成数である場合はm=q\cdot rとして

\begin{aligned} n&=(q\cdot r)^2p\\ &=(q\cdot r)^2(p_1^2+p_2^2)\\ &=(q\cdot r)^2p_1^2 + (q\cdot r)^2p_2^2\\ &=(q\cdot r\cdot p_1)^2+ (q\cdot r\cdot p_2)^2 \end{aligned}

より2つの平方数の和で表すことができる.例えば2925=(3\cdot5)^2\cdot13のように(合成数)^2\cdot(素数)で表される数については

\begin{aligned} 2925&=(3\cdot5)^2\cdot13\\ &=(3\cdot5)^2\cdot(2^2+3^2)\\ &=(3\cdot5)^2\cdot2^2+(3\cdot5)^2\cdot3^2\\ &=(3\cdot5\cdot2)^2+(3\cdot5\cdot3)^2\\ &=30^2+45^2 \end{aligned}

のようにして2つの平方数の和として表すことができる.

また,合成数nが平方数で括られた因数mを持たない10=2\cdot 5のような場合についてはp=p_1^2+p_2^2,q=q_1^2+q_2^2と表される素数p,qを用いて解決を図る.

\begin{aligned} n&=p\cdot q\\ &=(p_1^2+p_2^2)(q_1^2+q_2^2)\\ &=(p_1q_1)^2+(p_1q_2)^2+(p_2q_1)^2+(p_2q_2)^2\\ &=(p_1q_1-p_2q_2)^2+(p_1q_2+p_2q_1)^2\\ \end{aligned}

例えば,10=2\cdot5のように(素数)\cdot(素数)で表される数について

\begin{aligned} 10&=2\cdot5\\ &=(1^2+1^2)\cdot (1^2+2^2)\\ &=(1\cdot1-1\cdot2)^2+(1\cdot1+1\cdot 2)^2\\ &=1^2+3^2 \end{aligned}

のように表すことができる.

また,130=2\cdot5\cdot13のように(素数)\cdot(素数)\cdot(素数)で表される数についても上述した考え方を繰り返し使うことで解決できる.

\begin{aligned} 130&=2\cdot 5\cdot 13\\ &=(1^2+1^2)(1^2+2^2)(2^2+3^2)\\ &=(1^2+3^2)(2^2+3^2)\\ &=(1\cdot2-3\cdot3)^2+(1\cdot3+3\cdot2)^2\\ &=7^2+9^2 \end{aligned}

以上より,上述した条件を満たす合成数が平方数の和で表されることとその方法を確認できた.