1063 is a Congruent Number
[2003.03.28]合同数 1063
■素数1063は、合同数である。
pari/GPで、1063が素数であることを確認できる。
gp> isprime(1063)
time = 6 ms.
%1 = 1
1063が合同数であることを示すには、楕円曲線
E1: y2 = x3 - 10632x ----------- (1)
が自明でない(y!=0である)有理点を持つことを言えば十分である。
楕円曲線E1は、次の楕円曲線
E2: 1063Y2 = X3 - X ----------- (2)
にQ-isomorphicである。
実際に、(1)に、x = 1063X, y = 10632Y[逆変換は、X = x/1063, Y = x/(10632)]を代入して、両辺を1063で割ると、(2)を得る。
(1)または(2)の自明でない有理点は、高さがかなり大きいために、Cremonaのmwrank3では、求めることができなかった。
参考文献[2]6.1 Example 3によると、Elkiesはmodular曲線のHeegner点を計算することによって、
E2(Q) = Z×Z/2Z×Z/2Z
であり、E2(Q)/E2(Q)torsの生成元のx座標は、q2/1063であることを示した。ここで、
q = 11091863741829769675047021635712281767382339667434645/317342657544772180735207977320900012522807936777887
である。
pari/GPで、E2の自明でない有理点を計算する。
gp> q = 11091863741829769675047021635712281767382339667434645/317342657544772180735207977320900012522807936777887;
time = 10 ms.
gp> x = q^2/1063
time = 8 ms.
%2 = 123029441267317899425759341216026777567775247587412272430660956809502325964064416216529464938315346276025/107050863122326000653932472999399916626862133500609721014258880015877351314764261402955153124509232409447
gp> yn=sqrtint(numerator(y2)); yd=sqrtint(denominator(y2)); y=yn/yd
time = 25 ms.
%3 = 672532556647584406716590740978037023311516428389732981869543386893692527510635738477817517667184137585766635008338055191254090996069438269534971190782686920/36112029135629717837326081995403025167022494027340234861713900461155349447108299548644083346888047525972468811270678108303473096430472561770359835968306893807
gp> y2-y^2
time = 4 ms.
%4 = 0
gp> X = x*1063
time = 0 ms.
%5 = 123029441267317899425759341216026777567775247587412272430660956809502325964064416216529464938315346276025/100706362297578551885166954844214408868167576200009144886414750720486689853964498027239090427572184769
gp> Y = y*1063^2
time = 3 ms.
%6 = 672532556647584406716590740978037023311516428389732981869543386893692527510635738477817517667184137585766635008338055191254090996069438269534971190782686920/31958424643180226924213037698736005294855428801445203241605655076515682684311073621173751976282577244130121101791888191891523658109622973524370877403103
gp> 1063*y^2-(x^3-x)
time = 1 ms.
%7 = 0
gp> Y^2-(X^3-1063^2*X)
time = 3 ms.
%8 = 0
よって、E2(Q)/E2(Q)torsの生成元は、
P2(123029441267317899425759341216026777567775247587412272430660956809502325964064416216529464938315346276025/
107050863122326000653932472999399916626862133500609721014258880015877351314764261402955153124509232409447,
672532556647584406716590740978037023311516428389732981869543386893692527510635\
738477817517667184137585766635008338055191254090996069438269534971190782686920/
3611202913562971783732608199540302516702249402734023486171390046115534944710829\
9548644083346888047525972468811270678108303473096430472561770359835968306893807)
であり、E1(Q)/E1(Q)torsの生成元は、
P1(123029441267317899425759341216026777567775247587412272430660956809502325964064416216529464938315346276025/
100706362297578551885166954844214408868167576200009144886414750720486689853964498027239090427572184769,
672532556647584406716590740978037023311516428389732981869543386893692527510635\
738477817517667184137585766635008338055191254090996069438269534971190782686920/
3195842464318022692421303769873600529485542880144520324160565507651568268431\
1073621173751976282577244130121101791888191891523658109622973524370877403103)
である。
P2のN\"eron-Tate heightをpari/GPで計算すると、以下のようになる。
gp> e1063=ellinit([0,0,0,-1063^2,0])
time = 21 ms.
%17 = [0, 0, 0, -1129969, 0, 0, -2259938, 0, -1276829940961, 54238512, 0, 92337808099696653376, 1728, [1063.000000000000000000000000, 0.E-28, -1063.000000000000000000000000]~, 0.08042213308624349586589934294, 0.08042213308624349586589934294*I, -19.53189086778384838316099168, -58.59567260335154514948297504*I, 0.006467719490141460797262554825]
gp> ellheight(e1063,[X,Y])
time = 30 ms.
%18 = 119.8199600546219581109782197
■面積が1063である有理直角三角形の3辺の長さa,b,cを求める。
pari/GPによって、(3辺の長さが全て有理数で、面積が1063である)直角三角形の3辺の長さa,b,cを、P1(X,Y)より以下のように計算する。
gp> a=abs(1063^2-X^2)/Y
time = 7 ms.
%23 = 60632962349809758021841786767461108739811213650247930740122480782027326443279772350518131004716559081896/3519921516956759949431835966936373617409633741365895025703555071825336577825931441281919224224453695115
gp> b=2*1063*X/Y
time = 4 ms.
%24 = 3741676572525035826246041632853365155306440667071946412322879041350332782228965122082680135350594277907245/30316481174904879010920893383730554369905606825123965370061240391013663221639886175259065502358279540948
gp> c=(1063^2+X^2)/Y
time = 5 ms.
%25 = 13298065356891700716198683223339131312294694143940968281058339235905711318340054960306022495141062478438136256501123952942091993090136743576576928644521211331037955144077159527559535619482837134195016272323217/106711634405962237879770450679948483600761944324557593229905046097686311849569124164606343663541364088003059950479221088291035635945066672088972117624732103757744798445927801826918228633275973931884550069020
gp> a^2+b^2-c^2
time = 6 ms.
%26 = 0
gp> (1/2)*a*b
time = 1 ms.
%27 = 1063
よって、
a = 60632962349809758021841786767461108739811213650247930740122480782027326443279772350518131004716559081896/
3519921516956759949431835966936373617409633741365895025703555071825336577825931441281919224224453695115
b = 3741676572525035826246041632853365155306440667071946412322879041350332782228965122082680135350594277907245/
30316481174904879010920893383730554369905606825123965370061240391013663221639886175259065502358279540948
c = 13298065356891700716198683223339131312294694143940968281058339235905711318340054960306022495141062478438\
136256501123952942091993090136743576576928644521211331037955144077159527559535619482837134195016272323217/
1067116344059622378797704506799484836007619443245575932299050460976863118495691241646063436635413640880\
03059950479221088291035635945066672088972117624732103757744798445927801826918228633275973931884550069020
これらの正有理数a,b,cに対して、
a2+b2 = c2,
(1/2)ab = 1063
となるので、(a,b,c)はcを斜辺とする直角三角形であり、その面積は1063であることが確認できた。
■楕円曲線E1上のP1の2倍点2P1と、2P1に対応する面積1063の有理直角三角形の3辺の長さa2,b2,c2を求める。
pari/GPによって、2P1とa2,b2,c2を計算すると、以下のようになる。
gp> p2=ellpow(e1063,[X,Y],2)
time = 7 ms.
%89 = [176838542236163195540799324937478270087378635743533759090588749735306078965842536838387914577889633399758340136170678816143554953607204972299105803863915941107786091658178570949469197839936469247024148717301666178926701473159719276043287865159059119426622413811582071950529418767685600699075771003591491666837764621789864893317311074170406607361152031488794628195484104965141921133261736394488582350999132878517229089/45549491670366974630797357033195030499100728928108276388498287949252279865338456144266980763414728011941572511908831506222425062587012290669510782359398055775174861164006485414473483429563680880735559429420028724379490621377926154428733741444745024377313402004738165901192655072666079093569932836478893592833184742260152047773897568415881870766130572685222440051884442879049986878049595122119881039373147055041600, -2261744863802607615523401174350168285957237311742402923280528696423284979306841101893871129777501156398578481543386921743000106355908669979066308050536307391018002784403677813999212647703714206217672437100116252690791759504839193657181559370478748812109575040693246933672145950295329081046306466513768849309188772492226008200402721404273350452681518524206393682408618932397554380625151796698898115133517978636293648409381116312374510589257519847084383096177755038908829238836113901998578909204561868837888176374747456071837614064586831922654368009947780588590390264570197937825843360584210471847511958721581264995515785781937/9721321405011245630554146278031381652498296883014740566780097731916492571217360183968817450208148024815478548087433435418153747570799796259404897276859060293293614492742888108610490981599235315996159485996294260799350564736611300430068228238903806268768864974336632131167550500076622735347466614117801591473950243790916169964469412090251088893106142781698134210740552692339636402463029335041760535428203568935896070796396679449031390909300914263810309566788771718140513527836567370000924025895384878655682330616398556211146504633525403215092974247332386004728919322049962072142110590325586793690820571202514037942464000]
gp> X2=p2[1];Y2=p2[2];
time = 0 ms.
gp> a2=abs((1063^2-X2^2)/Y2)
time = 4 ms.
%91 = 170080745063451054777528964696491674099970522174944958890325265669798755396845567757134797997504746281047824744363006388873554701168897897948755135682373414014623370428437209407986701030209749247016942628068332639104574102565566806172942159858070592793197626957639646985207055766083628859008505961893197608276956142991023596197952962689226764363678052673714514670297895895852849453941700780860445839881127424536432161/2838116577342437832439469794194893461748860768882395621658060273959280566833216772130702052743660489965191165770154286843593030359155304976461735377953917697593969911756290089292067846955548682298577070788729711467311959311029670385437187176062050694770112304135353556446540741965918222402372388536219875392022093762936558356337037034275202012437908170950969580458795582007645834543220970223972687759103426196874680
gp> b2=abs(2*1063*X2/Y2)
time = 3 ms.
%92 = 6033835843430022831766312782458343499678077994643973091645036142437430485087418857549872564133022201665996418427348013829478782543564178379957649413530029025084780032393872729834936242627496498566774852496839366579505225495249079239439459936307919777081258758591761661005345617419542140827443698028003455083438971340003123065572540734869079478442992771441761328055399407348255044238887782696165934175853884094555569680/170080745063451054777528964696491674099970522174944958890325265669798755396845567757134797997504746281047824744363006388873554701168897897948755135682373414014623370428437209407986701030209749247016942628068332639104574102565566806172942159858070592793197626957639646985207055766083628859008505961893197608276956142991023596197952962689226764363678052673714514670297895895852849453941700780860445839881127424536432161
gp> c2=abs((1063^2+X2^2)/Y2)
time = 4 ms.
%93 = 33616280199083918466307618900498243174942949551799091412443410401514132606701236432890095421085307876368039849666550109284565738031088190208722291101542073932025817526547397644305243968442878011080941366826320363451420888671631217941313108526490896972955696009165799969180331661868684480423433799032430959523689839189876385993558243105183152488724450529067233356433006139333753633381427396613888688368800521286758017646904801775482683287605287749136767631631598208580665157095992117139373204583732674579893276996425693821011312124184301599441722537870460401449833855796331922603656935731894444272324529770635038729002186893898382189329734153401190610941260081784453593899726615595906925066292767257589550652873547716589912378489528397849904158810367332686155633944990691082237030661679630280836294716166685089502611013478437660409921/482708982051333437071458233468440032147883849215102182647027364790475260387946825873717622937849172028141764139100666335843680647993523048063929721042753251233166223560945015495652414888401347501176807404130811303069029854483100343361527942312266539340195506876438299511192007380511527018566077653031495392329104400758403969905954050988138119613202056938023330806564796808633867419135531008075808049388838620429275464475939336237880350703828461694953535453833195418250750353725554775884201178622662776669311548138381983622906702228236682967220734438423299516020330269247998841998373086505215041849776147147086975801462333148231157869964534756523774262239590285517791225263175273425775432760394844708671035091038658334153855662101047169567764275985244436735801712116543096752794061086070632684367529292270584476921976517816038583480
gp> a2^2+b2^2-c2^2
time = 24 ms.
%94 = 0
gp> (1/2)*a2*b2
time = 0 ms.
%95 = 1063
これらの正有理数a2,b2,c2に対して、
a22+b22 = c22,
(1/2)a2b2 = 1063
となるので、(a2,b2,c2)はc2を斜辺とする直角三角形であり、その面積は1063であることが確認できた。
[2007.08.11追記]
■楕円曲線E1のHeegner点の計算
CremonaのHeegner点計算プログラム(heegner.gp)[3]によって、楕円曲線
E1 : y2=x3-10632x
のねじれ点でない有理点を求めることができた。
Reading GPRC: /cygdrive/c/Program Files/PARI/.gprc ...Done.
GP/PARI CALCULATOR Version 2.3.2 (released)
i686 running cygwin (ix86 kernel) 32-bit version
compiled: Mar 28 2007, gcc-3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
(readline v5.2 enabled, extended help available)
Copyright (C) 2000-2006 The PARI Group
PARI/GP is free software, covered by the GNU General Public License, and
comes WITHOUT ANY WARRANTY WHATSOEVER.
Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.
parisize = 4000000, primelimit = 500000
(21:39) gp > read("heegner0.gp")
(21:40) gp > H_auto([0,0,0,-1063^2,0],1)
Saving old precision 500
N=36159008
Testing rank condition for D=-31 ... no, twist has rank >=2
Testing rank condition for D=-39 ... OK
[D,h,h0]=[-39,4,2]
[b,alist0]=[-3514927461, [1, 2]]
max a = 2: sqrt(|d|)/maxa = 3.122498999199199102
Testing rank condition for D=-55 ... OK
[D,h,h0]=[-55,4,2]
[b,alist0]=[-2445491805, [1, 4]]
max a = 4: sqrt(|d|)/maxa = 1.854049621773915737
Testing rank condition for D=-79 ... OK
[D,h,h0]=[-79,5,3]
[b,alist0]=[-3026551879, [1, 2, 4]]
max a = 4: sqrt(|d|)/maxa = 2.222048604328897212
Testing rank condition for D=-95 ... OK
[D,h,h0]=[-95,8,4]
[b,alist0]=[2484231505, [1, 3, 4, 6]]
max a = 6: sqrt(|d|)/maxa = 1.624465724134827318
Testing rank condition for D=-103 ... OK
[D,h,h0]=[-103,5,3]
[b,alist0]=[-2830316997, [1, 2, 13]]
max a = 13: sqrt(|d|)/maxa = 0.7806839665455553437
Testing rank condition for D=-111 ... OK
[D,h,h0]=[-111,8,4]
[b,alist0]=[1818661545, [1, 2, 3, 6]]
max a = 6: sqrt(|d|)/maxa = 1.755942292142123141
Testing rank condition for D=-127 ... no, twist has rank >=2
Testing rank condition for D=-167 ... OK
[D,h,h0]=[-167,11,6]
[b,alist0]=[-2056024357, [1, 2, 3, 4, 6, 8]]
max a = 8: sqrt(|d|)/maxa = 1.615355997915010684
Testing rank condition for D=-191 ... OK
[D,h,h0]=[-191,13,7]
[b,alist0]=[-3331027039, [1, 3, 4, 6, 8, 9, 24]]
max a = 24: sqrt(|d|)/maxa = 0.5758447900452188881
Testing rank condition for D=-223 ... OK
[D,h,h0]=[-223,7,4]
[b,alist0]=[127723793, [1, 2, 4, 7]]
max a = 7: sqrt(|d|)/maxa = 2.133312074724011237
Testing rank condition for D=-231 ... OK
[D,h,h0]=[-231,12,6]
[b,alist0]=[-1480984197, [1, 2, 3, 5, 6, 15]]
max a = 15: sqrt(|d|)/maxa = 1.013245610238044242
Using discriminant -39
E=[0, 0, 0, -1129969, 0]
N=36159008
... 省略 ...
p=4243749221 ap=107522 z=-5.8550873626488846754197486213356813534784223
06361515500111170290980653887708955659125122250800256249919493187252518905062020
76009507050050331845530982882089843019748711004026951538517444877364714760156686
63469092250181966234706880056658426009445582471419832073102004816854870744639804
08449847635939230715672871706175809635198772459980985195222380471241980470978986
47187998876160597759659219707351612475707104233434876638294822345119269421063543
66524040197328572007814604346290714152530074563762632531
H_indexsum = 1.648365649
Square of index = 64.0000444
Index = 8
H_z=-5.8550873626488846754197486213356813534784223063615155001111702909806538877
08955659125122250800256249919493187252518905062020760095070500503318455309828820
89843019748711004026951538517444877364714760156686634690922501819662347068800566
58426009445582471419832073102004816854870744639804084498476359392307156728717061
75809635198772459980985195222380471241980470978986471879988761605977596592197073
51612475707104233434876638294822345119269421063543665240401973285720078146043462
90714152530074563762632531
reducing modulo real period...
H_z=0.01572835264689052279090341398691265565695637700601572947883119041899929303
31491592316099808638891023928475183437821385769930547973077636697489432861604008
24102306461454620579492425087349940305955988135026573233407475820810274871082604
61323532675995267485062113136927343553348298911190780196677961943542162344798394
72235227785112100929523373160223192831521086016412200319213521239360725773140377
62897157493507404717151684628094116625342369070389274352118042883304694393504467
847364658272093403195689633
Dividing 2*|T|*H_z by 64...
[64, 0] : [64, 0]b: [64, 1] : [64, 1]b: [64, 2] : [64, 2]b: [64, 3] : [64, 3]b:
[64, 4] : [64, 4]b: [64, 5] : [64, 5]b: [64, 6] : [64, 6]b: [64, 7] : [64, 7]b:
[64, 8] : [64, 8]b: [64, 9] : [64, 9]b: [64, 10] : [64, 10]b: [64, 11] : [64, 11
]b: [64, 12] : [64, 12]b: [64, 13] : [64, 13]b: [64, 14] : [64, 14]b: [64, 15] :
[64, 15]b: [64, 16] : [64, 16]b: [64, 17] : [64, 17]b: [64, 18] : [64, 18]b: [6
4, 19] : [64, 19]b: [64, 20] : [64, 20]b: [64, 21] : [64, 21]b: [64, 22] : [64,
22]b: [64, 23] : [64, 23]b: [64, 24] :
***RATIONAL P = [123029441267317899425759341216026777567775247587412272430660956
809502325964064416216529464938315346276025/1007063622975785518851669548442144088
68167576200009144886414750720486689853964498027239090427572184769, 6725325566475
84406716590740978037023311516428389732981869543386893692527510635738477817517667
184137585766635008338055191254090996069438269534971190782686920/3195842464318022
69242130376987360052948554288014452032416056550765156826843110736211737519762825
77244130121101791888191891523658109622973524370877403103]
= [3904248984801912648126020507232047134218291763192570071830317343860704085538
8498517494244812527522309555866161663639855626672916198047208465226303018259175:
67253255664758440671659074097803702331151642838973298186954338689369252751063573
8477817517667184137585766635008338055191254090996069438269534971190782686920:319
58424643180226924213037698736005294855428801445203241605655076515682684311073621
173751976282577244130121101791888191891523658109622973524370877403103]
h(P) = 239.639920109243916221956439524878754233644739378512224365810363687389869
79024375299615036436145937691755500115929895921842646683848540812130734509564606
12760017241036382288230383131644748149467254172730242515593507423118186911702455
68272735252137508257652699856541271230000110532243673329057496303626957087996659
35952784598571449684458828127344504660673385695587703526688698876030063258347720
67518057545325167019243687109378807642071422420085000732602133779424452249367895
7709412121172370861559766053
real x(P) = 1221.66503148804629112507942964086256850947305854346949521384249
92654447553189263808239032580036833535014564607067146703815780710157704763183582
01611566310506651721491200826980033551351979064387275202774388560818384158429382
00173972056533919623317666902025258182983728281040328201164557721689373850295864
40585156572234134601992196885585271967529093066198567315567146755856804920929548
19405538602467350727140555357670353848988482328985600634590853251362832145786602
3015979961481091124344169364564894987
---------------------------------------------------------
(17:38) gp > P=[123029441267317899425759341216026777567775247587412272430660956
809502325964064416216529464938315346276025/100706362297578551885166954844214408
868167576200009144886414750720486689853964498027239090427572184769, 67253255664
7584406716590740978037023311516428389732981869543386893692527510635738477817517
667184137585766635008338055191254090996069438269534971190782686920/319584246431
8022692421303769873600529485542880144520324160565507651568268431107362117375197
6282577244130121101791888191891523658109622973524370877403103]
%3 = [12302944126731789942575934121602677756777524758741227243066095680950232596
4064416216529464938315346276025/100706362297578551885166954844214408868167576200
009144886414750720486689853964498027239090427572184769, 672532556647584406716590
74097803702331151642838973298186954338689369252751063573847781751766718413758576
6635008338055191254090996069438269534971190782686920/319584246431802269242130376
98736005294855428801445203241605655076515682684311073621173751976282577244130121
101791888191891523658109622973524370877403103]
(20:25) gp > e=ellinit([0,0,0,-1063^2,0])
%4 = [0, 0, 0, -1129969, 0, 0, -2259938, 0, -1276829940961, 54238512, 0, 9233780
8099696653376, 1728, [1063.00000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000, 0.E-520, -1063.00000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000]~,
0.080422133086243495865899342949624575467607927169418236021780842210954153160850
75093639359221457733359331973569310001429642484677934764745442558080268478385921
27740266926665869727097296136810130562135575601769882552396440744348706724420610
38853031756161874436006048900755082473389768387893860471446009125168442735481137
44052023676260375256893888223000719359698055654372482068648945087218040426179834
27659529390375214509324325522954495621449274770674898101065169932256966293026975
17533031226709307656750, 0.08042213308624349586589934294962457546760792716941823
60217808422109541531608507509363935922145773335933197356931000142964248467793476
47454425580802684783859212774026692666586972709729613681013056213557560176988255
23964407443487067244206103885303175616187443600604890075508247338976838789386047
14460091251684427354811374405202367626037525689388822300071935969805565437248206
86489450872180404261798342765952939037521450932432552295449562144927477067489810
106516993225696629302697517533031226709307656750*I, -19.531890867783848383160991
68307363204453468718958954379478379021073063276966059439787610729910957121734865
21357364198065442384379114095539114067621828308742657334590862795926041359512079
64235060958822550985884864375968699923112590748014825051697745100719030784984940
29524288278787830339149989951806151089628421993309240970408558908167490713422537
90387765660691990233915436064452906103778222440097868610361511016225529142217883
95250216803342362844763821274984142827239928771173122740860994701449446302, -58.
59567260335154514948297504922089613360406156876863138435137063219189830898178319
36283218973287136520459564072092594196327153137342286617342202865484926227972003
77258838777812407853623892705182876467652957654593127906099769337772244044475155
09323530215709235495482088572864836363491017449969855418453268885265979927722911
22567672450247214026761371163296982075970701746308193358718311334667320293605831
08453304867658742665365185750650410027088534291463824952428481719786313519368222
582984104348338907*I, 0.00646771949014146079726255482578603687478914059437362266
81791983927902194539991680645158200918356564160969027162478088952285062321555420
22268334076830518130216306112314554960290927880006652989090323367769514139633042
23478326905814784600935523916321310777370659988134056792943334724957042954555311
94807691340972083070741754984891846283806524823108085777598935742100042736823494
28736986693966680964773338440320262809484284042687374188935038489823245587559664
6510667579475243656811698972164400731379028462]
(20:25) gp > ellglobalred(e)
%5 = [36159008, [1, 0, 0, 0], 8]
(20:26) gp > ellisoncurve(e,P)
%6 = 1
[参考文献]
- [1]Karl Rubin, "Right triangles and elliptic curves", p1-8.
- [2]Bjorn Poonen, "Elliptic Curves", March 2001, p8.
- [3]John Cremona,"Pari/GP Scripts".
Last Update: 2007.09.02 |
H.Nakao |