平方剰余の相互法則の意味と応用

平方剰余の相互法則(など)を用いることで,与えられた素数 pppp未満の非負整数aaに対してpp で割って aa 余るような平方数が存在するか否かを素早く判定することができる。

平方剰余の相互法則の意味と応用について解説します。

前提知識

x2a(modp)x^2\equiv a\pmod{p}

を満たす整数 xx が存在するとき,aapp の平方剰余であると言い,(ap)=1\left(\dfrac{a}{p}\right)=1 と書きます。

逆に,上記の合同式を満たす整数 xx が存在しないとき,aapp の平方剰余でないと言い,(ap)=1\left(\dfrac{a}{p}\right)=-1 と書きます。

→平方剰余と基本的な問題→ルジャンドル記号とオイラーの規準

平方剰余の相互法則

平方剰余の相互法則:

相異なる奇素数 p,qp,q に対して

(qp)(pq)=(1)p12q12\left(\dfrac{q}{p}\right)\left(\dfrac{p}{q}\right)=(-1)^{\frac{p-1}{2}\cdot \frac{q-1}{2}}

x2p(modq)x^2\equiv p\pmod{q} に解があるかどうか」

x2q(modp)x^2\equiv q\pmod{p} に解があるかどうか」

どちらか一方が分かればもう一方も分かるという素敵な定理です。

平方剰余の相互法則だけでは平方剰余かどうかを素早く判定することはできません。以下の補充法則が必要です。

補充法則

pp を奇素数とする。

第一補充法則: (1p)=(1)p12\left(\dfrac{-1}{p}\right)=(-1)^{\frac{p-1}{2}}

第二補充法則: (2p)=(1)p218\left(\dfrac{2}{p}\right)=(-1)^{\frac{p^2-1}{8}}

ルジャンドル記号の性質: a,ba,bpp の倍数でないとき,(abp)=(ap)(bp)\left(\dfrac{ab}{p}\right)=\left(\dfrac{a}{p}\right)\left(\dfrac{b}{p}\right)

第一補充法則とルジャンドル記号の性質はオイラーの規準から簡単に証明できます。→ルジャンドル記号とオイラーの規準

第二補充法則と相互法則(特に相互法則)の証明はけっこう大変です。例えば初等整数論講義などの本を参照して下さい。

具体例

これでいよいよ平方剰余の問題が解けます!

例題

1919 で割って 1414 余る平方数は存在するか判定せよ。

解答

(1419)=(219)(719)\left(\dfrac{14}{19}\right)=\left(\dfrac{2}{19}\right)\left(\dfrac{7}{19}\right) (ルジャンドル記号の性質)

  • (219)=(1)45=1\left(\dfrac{2}{19}\right)=(-1)^{45}=-1(第二補充法則)
  • (719)=(1)39(197)=(197)\left(\dfrac{7}{19}\right)=(-1)^{3\cdot 9}\left(\dfrac{19}{7}\right)=-\left(\dfrac{19}{7}\right)(相互法則)

さらに相互法則と第二補充法則を使うと,

(197)=(57)=(1)23(75)=(25)=(1)3=1-\left(\dfrac{19}{7}\right)=-\left(\dfrac{5}{7}\right)=-(-1)^{2\cdot 3}\left(\dfrac{7}{5}\right)\\=-\left(\dfrac{2}{5}\right)=-(-1)^3=1

以上より (1419)=1\left(\dfrac{14}{19}\right)=-1 となるので,1919 で割って 1414 余る平方数は存在しない。

注:この例題なら普通に 121^2 から 18218^2 まで(本当は 929^2 まででよい)計算してもあまりスピードは変わりませんが,これがもっと大きい数字になると(例えば 1711717117 で割って 345345 余る平方数は存在するか判定せよとか)上記の手法のありがたみが実感できます。

追記2015.9.15:平方剰余の相互法則のステートメントが間違っていましたので修正しました,申し訳ありませんでしたm(__)m

ガウスは平方剰余の相互法則の証明を7通りも与えたらしいです(ソースはWikipedia)。