pを奇素数とする。
x^2≡q (mod p)を解く。
x^2≡q≡q+pk=m^2 (mod p)のとき
x≡±m (mod p)
kを見つければ解くことができる。
【解法】
q≡a (mod 3)
p≡b (mod 3) とする。
m^2≡a+bk (mod 3)
n^2≡0,1 (mod 3)より、
a+bk≡0,1
→bk≡-a,1-a→k≡s,t (mod 3)
q≡c (mod 8)
p≡d (mod 8)とする。
m^2≡c+dk (mod 8)
n^2≡0,1,4 (mod 8)より、
c+dk≡0,1,4
→dk≡-c,1-c,4-c→k≡u,v,w (mod 8)
k≡x (mod 3), k≡y (mod 8)
→k≡16x+9y (mod 24)
r[1]≡16s+9u,r[2]≡16s+9v, r[3]≡16s+9w
r[4]≡16t+9u, r[5]≡16t+9v, r[6]≡16t+9w
q+p×r[i]が平方数かどうか調べる。
n^2≡0,1,4,5,6,9 (mod 10)を活用
(一の位に着目する)
[2]4で割れる?→下2桁が4の倍数
[3]9で割れる?→各位の和が9の倍数
[5]25で割れる?→下2桁が00,25,50,75
q+p×r[i]=j^2
x≡±j≡j,p-j (mod p)
【例】x^2≡42 (mod 89)
❲42/89❳
42=2×3×7
❲42/89❳=❲2/89❳×❲3/89❳×❲7/89❳
=❲2/89❳×❲89/3❳×❲89/7❳
=❲2/89❳×❲1/3❳×❲5/7❳
=❲2/89❳×1×❲7/5❳
=❲2/89❳×❲2/5❳
=1×1=1
よって、解あり
42≡0 (mod 3)
89≡-1 (mod 3)
-k≡0,1→k≡0,2 (mod 3)
42≡2 (mod 8)
89≡1 (mod 8)
k≡-2,-1,2→k≡2,6,7 (mod 8)
k≡16x+9y (mod 24)
r[1]≡18
r[2]≡54≡6
r[3]≡63≡15
r[4]≡32+18≡8+18≡2
r[5]≡32+6≡8+6≡14
r[6]≡32+15≡8+15≡23
よって、r≡2,6,14,15,18,23 (mod 24)
42+89r
42+89×2=220=4×55
42+89×6=576=9×64=24^2
x^2≡42≡42+89×6=24^2
x≡±24≡24,65 (mod 89)
【例】x^2≡23 (mod 83)
【解】
23≡2 (mod 3)
83≡2 (mod 3)
2k≡-2,-1→k≡-4,-2→k≡1,2 (mod 3)
23≡-1 (mod 8)
83≡3 (mod 8)
3k≡1,2,5→k≡3,6,7 (mod 8)
k≡16x+9y (mod 24)
r[1]≡16+27≡19
r[2]≡16+54≡22
r[3]≡16+63≡7
r[4]≡32+27≡11
r[5]≡32+54≡14
r[6]≡32+63≡23
よって、
r≡7,11,14,19,22,23 (mod 24)
23+83r
23+83×7=604=4×151
23+83×11=936=9×104
23+83×14=1185
23+83×19=1600=40^2
よって、
x^2≡23≡23+83×19=1600=40^2
x≡±40≡40,43 (mod 83)
【例】x^2≡10 (mod 43)を解け。
【解】
10≡1 (mod 3)
43≡1 (mod 3)
k≡-1,0→k≡0,2 (mod 3)
10≡2 (mod 8)
43≡3 (mod 8)
3k≡-2,-1,2→k≡-6,-3,6≡2,5,6 (mod 8)
k≡16x+9y (mod 24)
r[1]≡18
r[2]≡45≡21
r[3]≡54≡6
r[4]≡32+18≡2
r[5]≡32+21≡5
r[6]≡32+6≡14
よって、
r≡2,5,6,14,18,23 (mod 24)
10+43r
10+43×2=10+86=96=3×32=3×2^5
10+43×5=10+215=225=15^2
よって、
x^2≡10≡10+43×5≡225≡15^2
x≡±15≡15,28 (mod 43)
(2022/10/30)