[̿]x3|x2ʤ顢3|xǤ롣
[]3ˡȤx0,1,2Τɤ줫˹ƱǤ롣
x1,2ʤx21 (mod 3)ȤʤΤǡx23dzڤʤ
äơ3|x2Ȥʤ뤿ˤϡx0 (mod 3)ǤʤƤϤʤʤĤޤꡢ3|xΩġ
[]X2+Y2=3ˤͭϤʤȤ衣
[]ˡǹԤΤˡͭ(X,Y)¸ߤȲꤹ롣
X2+Y2=3(*)
XYͭʤΤǡx,y,zˤäơΤ褦ɽ롣
X=x/z,Y=y/z(**)
ΤȤx,y,zˤ3dzڤʤΤȲꤷƤ褤ʤʤС3ĤȤ3dzڤ줿顢x,y,zx/3,y/3,z/3֤Ƥ⡢(**)ΩĤǤ롣
X,Y(*)Τǡx,y,zϼ
x2+y2=3z2(***)
ǡ⤷x3dzڤȤȡ(***)x23z23dzڤΤǡ3|y2ǤʤƤϤʤʤȡ3|yȤʤʢ[̿]x3|x2ʤ顢3|xǤפˡǡx,yξȤ3dzڤ뤳ȤˤʤäΤǡ(***)κդ32dzڤ롣32|3z2ǤΤǡ3|z2Ǥ롣ȡ(***)ˤäơ3|zȤȤ狼롣ɡx,y,z3dzڤ뤳ȤˤʤäƤޤx,y,zˤ3dzڤʤΤȤȿ롣
äơx3dzڤʤ
x,yؤƾ嵭Ʊȡy3dzڤʤȤˤʤ롣
椨ˡx,y϶3dzڤʤ
ǡ(***)3ˡȤƹͤ롣x,y϶3dzڤʤΤǡx,y1,2 (mod 3)Ǥ롣
äơx2,y21 (mod 3)ȤʤΤǡx2+y22 (mod 3)Ǥ롣
(***)ȡ3z22 (mod 3)Ȥʤ롣3z20 (mod 3)Ǥ뤿ᡢ̷⤹롣
äơX2+Y2=3Ȥ߾ͭȤ̷꤫⤬ƳΤǡ꤬̿줿
̵ͭ¸ĵˡˤĤƹͻ롣
Y2=X3-2X(*)
ζˤϡɸǤȯǤ롣ͭǤ롣Ūˤϡ(X,Y)=(-1,1),(2,2)ʤɤǤ롣
1Ĥͭ(X0,Y0)̤ͭ(X1,Y1)Ĥˡͤ롣⤷ˡΩС̵¸ĤͭĤ뤳ȤǤ롣ͭ٤ƵȤϸ¤ʤ
ޤ(X0,Y0)϶(*)ʤΤǡΩġ
(*)ξդXʬȡȤʤΤǡY0ΤȤ˼Ωġ
(**)
(**)ˤäơ(X0,Y0)Ǥζ(*)ηϡʤΤǡ(X0,Y0)Ǥ(*)ϼΤ褦ˤʤ롣
(***)
(X1,Y1)Ͼ嵭ľ(***)뤿ᡢΩġ
(X1,Y1)϶(*)(***)ȤθʤΤǡ(X1,Y1)뤿(***)(*)ȡΤ褦ˤʤ롣
ʢ嵭κդ3ޤǤܹԤ
ʢX1X=X0ʳβǤ뤫
X1X0ȤäɽȤϡY1ͤ롣
ʾˤꡢ(X0,Y0)Ȥäơ(X1,Y1)ɽ줿