2016年10月23日日曜日

161023(2)

Ruby


Beatty sequence

オンライン整数列大辞典の
A001951(http://oeis.org/A001951/list)、
A022838(http://oeis.org/A022838/list)、
A022839(http://oeis.org/A022839/list)、
A022840(http://oeis.org/A022840/list)、
A022841(http://oeis.org/A022841/list)、
A022842(http://oeis.org/A022842/list)、
A177102(http://oeis.org/A177102/list)
と比較し、答え合わせしてみる。

def A(m, n)
  l = Math.sqrt(m)
  (1..n).map{|i| (l * i).to_i}
end

ary = [0] + A(2, 71)
# OEIS A001951のデータ
ary0 =
[0,1,2,4,5,7,8,9,11,12,14,15,16,18,19,21,22,24,25,
 26,28,29,31,32,33,35,36,38,39,41,42,43,45,46,48,
 49,50,52,53,55,56,57,59,60,62,63,65,66,67,69,70,
 72,73,74,76,77,79,80,82,83,84,86,87,89,90,91,93,
 94,96,97,98,100]
# 一致の確認
p ary == ary0

ary = A(3, 65)
# OEIS A022838のデータ
ary0 =
[1,3,5,6,8,10,12,13,15,17,19,20,22,24,25,27,29,31,
 32,34,36,38,39,41,43,45,46,48,50,51,53,55,57,58,
 60,62,64,65,67,69,71,72,74,76,77,79,81,83,84,86,
 88,90,91,93,95,96,98,100,102,103,105,107,109,110,
 112]
# 一致の確認
p ary == ary0

ary = A(5, 61)
# OEIS A022839のデータ
ary0 =
[2,4,6,8,11,13,15,17,20,22,24,26,29,31,33,35,38,
 40,42,44,46,49,51,53,55,58,60,62,64,67,69,71,73,
 76,78,80,82,84,87,89,91,93,96,98,100,102,105,107,
 109,111,114,116,118,120,122,125,127,129,131,134,
 136]
# 一致の確認
p ary == ary0

ary = A(6, 60)
# OEIS A022840のデータ
ary0 =
[2,4,7,9,12,14,17,19,22,24,26,29,31,34,36,39,41,
 44,46,48,51,53,56,58,61,63,66,68,71,73,75,78,80,
 83,85,88,90,93,95,97,100,102,105,107,110,112,115,
 117,120,122,124,127,129,132,134,137,139,142,144,
 146]
# 一致の確認
p ary == ary0

ary = A(7, 59)
# OEIS A022841のデータ
ary0 =
[2,5,7,10,13,15,18,21,23,26,29,31,34,37,39,42,44,
 47,50,52,55,58,60,63,66,68,71,74,76,79,82,84,87,
 89,92,95,97,100,103,105,108,111,113,116,119,121,
 124,126,129,132,134,137,140,142,145,148,150,153,
 156]
# 一致の確認
p ary == ary0

ary = A(8, 58)
# OEIS A022842のデータ
ary0 =
[2,5,8,11,14,16,19,22,25,28,31,33,36,39,42,45,48,
 50,53,56,59,62,65,67,70,73,76,79,82,84,87,90,93,
 96,98,101,104,107,110,113,115,118,121,124,127,130,
 132,135,138,141,144,147,149,152,155,158,161,164]
# 一致の確認
p ary == ary0

ary = A(10, 58)
# OEIS A177102のデータ
ary0 =
[3,6,9,12,15,18,22,25,28,31,34,37,41,44,47,50,53,
 56,60,63,66,69,72,75,79,82,85,88,91,94,98,101,104,
 107,110,113,117,120,123,126,129,132,135,139,142,
 145,148,151,154,158,161,164,167,170,173,177,180,
 183]
# 一致の確認
p ary == ary0

出力結果
true
true
true
true
true
true
true

161023

Ruby


二項係数の二乗の性質について(2)

調べてみた。

def ncr(n, r)
  return 1 if r == 0
  (n - r + 1..n).inject(:*) / (1..r).inject(:*)
end

n = 20
# A000984, A002893
(1..10).each{|m|
  p [m, (0..n).map{|i| (0..i).inject(0){|s, j| s + ncr(i, j) ** 2 * ncr(m * j, j)}}]
}
# A000984, A001850, A069835, A084771, A084772, A098659
(1..10).each{|m|
  p [m, (0..n).map{|i| (0..i).inject(0){|s, j| s + ncr(i, j) ** 2 * m ** j}}]
}

出力結果
[1, [1, 2, 6, 20, 70, 252, 924, 3432, 12870, 48620, 184756, 705432, 2704156, 10400600, 40116600, 155117520, 601080390, 2333606220, 9075135300, 35345263800, 137846528820]]
[2, [1, 3, 15, 93, 639, 4653, 35169, 272835, 2157759, 17319837, 140668065, 1153462995, 9533639025, 79326566595, 663835030335, 5582724468093, 47152425626559, 399769750195965, 3400775573443089, 29016970072920387, 248256043372999089]]
[3, [1, 4, 28, 247, 2428, 25354, 275131, 3066277, 34849852, 402093076, 4694932978, 55352304022, 657845010619, 7871232172366, 94724844421249, 1145633887949572, 13915946040679228, 169683028207454776, 2076037223668708420, 25476829469571084952, 313498615395379684978]]
[4, [1, 5, 45, 509, 6413, 85905, 1196685, 17128053, 250070797, 3706975553, 55615458745, 842564575605, 12868046157101, 197864638432609, 3060110887820661, 47563717531514409, 742517043038854925, 11635942905649118401, 182966892478537864905, 2885764469167617149673, 45638625745153668217113]]
[5, [1, 6, 66, 906, 13826, 224381, 3788886, 65762416, 1164612226, 20943777246, 381233419941, 7007891120346, 129868918270886, 2423167941563336, 45476377273387616, 857760512176294031, 16249675671731558786, 309024593740363735376, 5896867792889553462966, 112867958900372744703396, 2166238063693067293669701]]
[6, [1, 7, 91, 1465, 26155, 496507, 9810325, 199311133, 4132608235, 87027705565, 1855235109091, 39942124752493, 866973187536373, 18947650485816007, 416523970183397125, 9202604015487297415, 204214399806020313835, 4549218602869842700957, 101688395801200492630105, 2279976276268033816122835, 51259967965260439610727955]]
[7, [1, 8, 120, 2213, 45144, 978783, 22092141, 512858410, 12153443800, 292557554486, 7129819294795, 175496459522161, 4355343272113821, 108834629524066727, 2735634324280391598, 69110425611793822488, 1753640324354772175064, 44670154701639034032060, 1141780670618473123095054, 29273567557930766098490652, 752593570757539142786274219]]
[8, [1, 9, 153, 3177, 72793, 1771609, 44887689, 1169986729, 31135903321, 841817012481, 23044963096953, 637220251156377, 17766016320154249, 498766595075902825, 14085186827342507113, 399789323594343683977, 11397717695256167169625, 326204401288401181999009, 9368158282825680500041809, 269866988771745229093165545, 7795428619152692439350967993]]
[9, [1, 10, 190, 4384, 111358, 3002410, 84268864, 2433407140, 71756200702, 2150006083633, 65232989379190, 1999321899802138, 61788594917439424, 1922902935023934640, 60197224303084368340, 1894121816601726592984, 59863806235896437303038, 1899377542598578927057342, 60472091704340846514570913, 1931226660986739070824413560, 61845629098194034391535233158]]
[10, [1, 11, 231, 5861, 163351, 4828761, 148569081, 4703287551, 152064309591, 4996222906871, 166244136125981, 5588183891002581, 189421174150256521, 6465866809260014401, 222027856476278145531, 7663192982386032259611, 265670945050036721562711, 9246435630434736868600701, 322927966828323370815719631, 11312927089732114758878746581, 397415361150797310406640375101]]
[1, [1, 2, 6, 20, 70, 252, 924, 3432, 12870, 48620, 184756, 705432, 2704156, 10400600, 40116600, 155117520, 601080390, 2333606220, 9075135300, 35345263800, 137846528820]]
[2, [1, 3, 13, 63, 321, 1683, 8989, 48639, 265729, 1462563, 8097453, 45046719, 251595969, 1409933619, 7923848253, 44642381823, 252055236609, 1425834724419, 8079317057869, 45849429914943, 260543813797441]]
[3, [1, 4, 22, 136, 886, 5944, 40636, 281488, 1968934, 13875544, 98365972, 700701808, 5011371964, 35961808432, 258805997752, 1867175631136, 13500088649734, 97794850668952, 709626281415076, 5157024231645616, 37528209137458516]]
[4, [1, 5, 33, 245, 1921, 15525, 127905, 1067925, 9004545, 76499525, 653808673, 5614995765, 48416454529, 418895174885, 3634723102113, 31616937184725, 275621102802945, 2407331941640325, 21061836725455905, 184550106298084725, 1619284832403678081]]
[5, [1, 6, 46, 396, 3606, 33876, 324556, 3151896, 30915046, 305543556, 3038019876, 30354866856, 304523343996, 3065412858696, 30946859111256, 313206733667376, 3176825392214406, 32284147284682596, 328643023505612596, 3350574568434600456, 34206348493399513876]]
[6, [1, 7, 61, 595, 6145, 65527, 712909, 7863667, 87615745, 983726695, 11112210781, 126142119187, 1437751935361, 16443380994775, 188609259215725, 2168833084841395, 24994269200292865, 288596644195946695, 3337978523215692925, 38666734085509918675, 448523930340837682945]]
[7, [1, 8, 78, 848, 9766, 116208, 1411404, 17383584, 216294534, 2712176048, 34217133028, 433826815584, 5522845782364, 70550459395424, 903871957376088, 11609390838397248, 149439879433714374, 1927359943975516464, 24900198783317300724, 322185768219251912928, 4174511185830878156916]]
[8, [1, 9, 97, 1161, 14721, 192969, 2582881, 35066313, 481003009, 6649718409, 92497952097, 1293068265993, 18150727906689, 255660741430857, 3611681892224097, 51151047016594761, 726034745427826689, 10325288148885543177, 147093267997642581601, 2098692320836733189001, 29984858605394405293441]]
[9, [1, 10, 118, 1540, 21286, 304300, 4443580, 65830600, 985483270, 14869654300, 225759595348, 3444812388280, 52781007848284, 811510465220920, 12513859077134008, 193460383702061200, 2997463389599395270, 46532910920993515900, 723626591914643806180, 11270311875128088314200, 175774584776587378711156]]
[10, [1, 11, 141, 1991, 29761, 460251, 7272861, 116619591, 1889815041, 30869546411, 507406003501, 8382404928711, 139054141487041, 2314783947556091, 38647630102736061, 646908600416279751, 10852435135445442561, 182414141648658652491, 3071424519623622600141, 51795261103319478048711, 874662233881165045064001]]

2016年10月22日土曜日

161022

Ruby


二項係数の二乗の性質について(1)

 重複組合せnHr を((n, r)) と表示することにする。
二項係数の二乗に関する次の式を確認してみる。

2 * binomial(2n - 1, n - 1) = Sum_{k=0..n} binomial(n, k)^2
3 * binomial(2n - 1, n - 1)^2 = Sum_{k=0..n} binomial(n, k)^2 * ((2n, n - k))

def ncr(n, r)
  return 1 if r == 0
  (n - r + 1..n).inject(:*) / (1..r).inject(:*)
end

def nhr(n, r)
  ncr(n + r - 1, r)
end

n = 50
(1..n).each{|i|
  k = (0..i).inject(0){|s, j| s + ncr(i, j) ** 2}
  p [i, k, k == 2 * ncr(2 * i - 1, i - 1)]
}
(1..n).each{|i|
  k = (0..i).inject(0){|s, j| s + ncr(i, j) ** 2 * nhr(2 * i, i - j)}
  p [i, k, k == 3 * ncr(2 * i - 1, i - 1) ** 2]
}

出力結果
[1, 2, true]
[2, 6, true]
[3, 20, true]
[4, 70, true]
[5, 252, true]
[6, 924, true]
[7, 3432, true]
[8, 12870, true]
[9, 48620, true]
[10, 184756, true]
[11, 705432, true]
[12, 2704156, true]
[13, 10400600, true]
[14, 40116600, true]
[15, 155117520, true]
[16, 601080390, true]
[17, 2333606220, true]
[18, 9075135300, true]
[19, 35345263800, true]
[20, 137846528820, true]
[21, 538257874440, true]
[22, 2104098963720, true]
[23, 8233430727600, true]
[24, 32247603683100, true]
[25, 126410606437752, true]
[26, 495918532948104, true]
[27, 1946939425648112, true]
[28, 7648690600760440, true]
[29, 30067266499541040, true]
[30, 118264581564861424, true]
[31, 465428353255261088, true]
[32, 1832624140942590534, true]
[33, 7219428434016265740, true]
[34, 28453041475240576740, true]
[35, 112186277816662845432, true]
[36, 442512540276836779204, true]
[37, 1746130564335626209832, true]
[38, 6892620648693261354600, true]
[39, 27217014869199032015600, true]
[40, 107507208733336176461620, true]
[41, 424784580848791721628840, true]
[42, 1678910486211891090247320, true]
[43, 6637553085023755473070800, true]
[44, 26248505381684851188961800, true]
[45, 103827421287553411369671120, true]
[46, 410795449442059149332177040, true]
[47, 1625701140345170250548615520, true]
[48, 6435067013866298908421603100, true]
[49, 25477612258980856902730428600, true]
[50, 100891344545564193334812497256, true]
[1, 3, true]
[2, 27, true]
[3, 300, true]
[4, 3675, true]
[5, 47628, true]
[6, 640332, true]
[7, 8833968, true]
[8, 124227675, true]
[9, 1772928300, true]
[10, 25601084652, true]
[11, 373225729968, true]
[12, 5484344754252, true]
[13, 81129360270000, true]
[14, 1207006196670000, true]
[15, 18046083758212800, true]
[16, 270973226431914075, true]
[17, 4084288492517016300, true]
[18, 61768560534979567500, true]
[19, 936965754818692830000, true]
[20, 14251249130792317944300, true]
[21, 217291154547500103985200, true]
[22, 3320424336845683407178800, true]
[23, 50842036159640899051320000, true]
[24, 779930957476713513919207500, true]
[25, 11984731064970170540288110128, true]
[26, 184451393491049784469167896112, true]
[27, 2842929845357250175988436873408, true]
[28, 43876850929620825420229701745200, true]
[29, 678030386065817178550897983211200, true]
[30, 10489883439533820437936337242480832, true]
[31, 162467664010428078458110763285207808, true]
[32, 2518883431474175950782193826089803867, true]
[33, 39090110185411913285784275170723310700, true]
[34, 607181676893820341660503845125871770700, true]
[35, 9439320697768093540067457327818042449968, true]
[36, 146863011226694319553950778980033185155212, true]
[37, 2286728960780289346685182472416645270101168, true]
[38, 35631164555094536219125073150536370205870000, true]
[39, 555574423792650901362768070242025348982520000, true]
[40, 8668349947224835688512588815951200507499768300, true]
[41, 135331455095162753009711112960037659797039809200, true]
[42, 2114055315534186406992970197690928431614075386800, true]
[43, 33042833217381280239100507687002613127986359480000, true]
[44, 516738026079253946549073848518435493317621394430000, true]
[45, 8085100058417324465412768304423758108778032721540800, true]
[46, 126564675961727530998266794572652440262364629427371200, true]
[47, 1982178148289690204805811690826384709514154241588652800, true]
[48, 31057565604712593920785504357132156255842434080447207500, true]
[49, 486831544814228731696244582251156115303992440254773470000, true]
[50, 7634297553158809278967829041029729737751087851099255647152, true]

2016年10月16日日曜日

161016

Ruby


Numbers n such that m^(n+1) == m (mod n) holds for all m

 n = 1, 2, 6, 42, 1806 のとき、(m^(n + 1) - m) / n を出力してみた。

# A002378, A027480, A108495, A108496
[1, 2, 6, 42].each{|i| p (1..2 * i).map{|j| (j ** (i + 1) - j) / i}}

i = 1806
p (1..10).map{|j| (j ** (i + 1) - j) / i}

出力結果
[0, 2]
[0, 3, 12, 30]
[0, 21, 364, 2730, 13020, 46655, 137256, 349524, 797160, 1666665, 3247860, 5971966]
[0, 209430786243, 7815642080822311372, 1842172677508006361457030, 27068294695622864223661876860, 68747114771196346634599779308105, 51995580380757061883555053636996008, 16203922234330403022065457496750867212, 2565538967691861383272015720010795808360, 238095238095238095238095238095238095238095, 14342873609819569488961603067249476461912660, 604706016535852711096905142634760389224113298, 18893606186707513969238956385191055331615851652, 457357961772832375830358252720995759633166849365, 8885356329326795471469527650957128831318446568080, 142531207297794722689578406542997505916921421334040, 1932210015268395856950534844654492198437206227033488, 22566719411917097464870152170381846044346375669135067, 230757354072215883638675726231563440086105155731675420, 2094307862430476190476190476190476190476190476190476190, 17067911533706202630670756225783231663404873253141292620, 126161250477745183571741733219470930077771090807275001953, 853193736165100494703380849458872428938666374099616987832, 5319050372538209496338726654833686823964257138146991556900, 30773088264621565285394668603793260921347176744824364071800, 166189917543243862866625469815943088867361828212443069708775, 842156041267041655108633775815179904691300828019702936364068, 4022963176201284066265844816691977830766855321467832366705322, 18191336995256479068401689883336293278514718377959409176564180, 78156420808223113720714285714285714285714285714285714285714285, 320113171732784833789860056523748528224766673812386431282702880, 1253717757959014127356166996234171813320179707149394181598940208, 4708148194882508736483908999243374884691108872703027336359482912, 16995899032742749937632136084478944075315083376059154012667067635, 59112131089883703093113415021657611040003151477624972661336263020, 198498963153289802290916991914666902717592881551493593523136720310, 644799726347573953356736997529970229853127009750144915077689150748, 2029763151977798947798740428623082082547869835027523342602292665977, 6201957869995272422391501015673916564141989383104838321619530237640, 18421726775080063614570300952380952380952380952380952380952380952380, 53266792787942592138981526763318691816959046761946079082394211906440, 150130937545296572356771972164254457814047970568738777235893533016063, 412946984929292083807232887828857908531144346166954570311375409499892, 1109726095000330115608877494140896123098582162619376378406340349669570, 2916680122884669553141083861204146851787543580160542790378843035016740, 7504771469273413798511497152631923464863039624422925125359251349856645, 18921632394102580059691100348930550968092385846651928962658896037156528, 46786861866656207456607155652186450387010751449653007928680606534505032, 113548695923534284914421835282373872761884976728793348587042763651258800, 270682946956228642236618768601190476190476190476190476190476190476190475, 634261399981355807743562388587558125488777230528612232456930414963866300, 1461821974063450228254443935211746726057043423173044479305808953367917518, 3315989162048185987890456702745318434758631152523279149600227567657601772, 7407682878199337597667928871664012146699333697622721649292992451728450705, 16305959445412065052734764171020147457412190603809860823232503164382207960, 35386358322783847583370650274822471042458964390846272985107742970799805780, 75747709251733017049047580436349958730454042402369272737141288698931744408, 160012692408609760728870512722049914882222765850594979079834512815370110487, 333723823137376206801292634143055279991954652806130864534551869173044990660, 687471147711963466345997793081051428571428571428571428571428571428571428570, 1399373402257098788850805439082443706897186965738684241646762583312950745460, 2815745236195619864846837102973360898157579880970033893526241696266459932573, 5602660879812640282336016308580310585418280996755276751869514211713330751552, 11027818022601542421292474762732181700311427111013387051376912762658393299040, 21479543405243377912073533917908952539182623300245636311869713522139049711680, 41413309484527226031375710580716306174804139356641135677149124218645428455715, 79061896127114104527104659045107524152773035759474157972088596393643375877388, 149497508888060199246307459402667126792378867703167663812264397275180939770342, 280066788433570662957771773456296927305630005426892284747583195071100611596220, 519955803807570618835550536369960081666666666666666666666666666666666666666665, 956884907083219600889061041624563334199499957812693194967849791511264469906920, 1746015344708175330610778845438342696766822297817224651029277968531108622949228, 3159611564958945157634617065899422845381210533792003124867224230125219524312232, 5671718373647523140830443162960803670165060383152426069031674269123497162902575, 10101480631109092736857664534633305301347771283053995310703092919928686959402900, 17853985497846833559262825125742919383586146910019846177491866695671301756894450, 31322173582157330273979506449352652845587042361820799006464345217822880756118468, 54552998344293406164545935299932682328519742875268086846921548033128235838172597, 94344293172107451428551861007647472386333618718484831635287634984625948754038480, 162039222343304030220654574967508672121904761904761904761904761904761904761904760, 276443588179307714196042007681086513200023230352498518387882094573842319851913680, 468539664357421253350179520914641948220092260380453083083392674852572783600455483, 789057553801682022732132091434756704627193813315535782600377058708261048054046812, 1320565692159728224037341725849385444420705654718266507663753219362593019172749310]
[0, 5063891814962052419784902203182257092458546990812068193643823130998757442290879551090213560145379936219249849628770758640017859890634403635603166131594491340865459891056316808940007004029905372464285973289672834067858679623859811439065402976733698976008987411881046320614115593736321638348775494495923687433796793065541185787720835270163640626857845357548861135449920132237795797141592398850073610146697925515800346174644364330327511805759042954734479197990703306851767836049532751172043812288803557808640782426715804157466547638003265547721, 7968737712574573612613374788545446667777309316310405501861813181409603416495252369145778807919731041050193822483386001160860117317714586642815991525807898214922488951398363373948070863204900853151266957627262479239599135907772557464743857420938903995196253726934019420658613460574310410447761398943637103918003094484250255770503777623339056930504521819242549344221799425428944245292154009274275745641326435213422116590777384652424433235189328929144592563243765822655188584764490480166458749180820578361763394250468226594857725621434706360163453513369584302984765145921548490846963896113664986878535240864319495741711060849305584540264356751671757801781854649264414551561777268066413597414942135224506339212615374527521118638507815705866917769820920609035024463405357268761942625839296502680714315004194029956554054360190533179540354913817342608710374037893164, 46311258566433242834001354376132187695983265267551440585728086998350048764303069328483872249314978951339019719491509284310218504030483169387131134468981002332910699187494943218973853531222437323491705710751640472921550598728124857044244386323993592118528871844507942874809847258222921705404467411340217499553946444785202940557126890635367573685946301035040252264505911761494231824533775617765447430358315742195691448512555128593033635022388134941007466594488733510190800329444899747398496089543028167096949841186375877826371988821306066574295826014467244085168633166226103847701408736621815265056597351157905892058494042527048592404528288284905202725882297648464997870013140487516084622845589585359858364980308012074821516723160234062401978731303184909567417026585889393355032598975998850196206837218437089484511695259891097142224441930365213772583546377410805523513889061683957631309242293898973532066421564265714102069150614366458308891159284333720028666499751006659549275806975429519423309015355482246785833109870960729697038435335104325341441733592252538380757029805592152760867730, 605452517300830983872974517224456567282963692348707074927224786019203665786765930530806766188481147880718391174170580049556711119639651838280024615475030491864681467316746916552265309267026179940846983937136467348060039763871333467153631733431322717804939850464362924525948848076343596879466248418491417911327398109498942602557133701052073119916844562114760117495026533732291117774483230453917094802574420239715120213662617764310440939711710821107585092706091674659160039945788119890154051212712276445512618784855354684737874730674659414666317667734707760714213539142809636733467976742515284565830536890517903226135678557146460818682325828535426706911785195083456801586705876333812334942321066316212720654966661544258435168577865744435221952224075986687798427399455121204684104471170365814990985823794748058449790162232179058792428861215937028481343910423199385396041952087684340428826911147000277101813961003700951178360463614612009085547523505204485564358719769640431722362104831325265005724302323220843226905987107931872267708256384518114654450611340577662945262503551325391036371312720579916651411694183884623569090475677316774311227511927673801368695822381804429562864646649717839300191739793877723622551014805701642278300942053367304943134783378339157020, 72877203174984175714323132522620255870929212075741833355765752386183951810263054259737617557575692863008927602558269534010369661173783439130861574078782865958347178479610036391188312547205785426053817372972988342086268681251944422404865116879169656555865177839469744044812245632522881348695457491684135729778441534492210353073975368944080072180511931755352756605839204638450123153676629903935250756459148838544462585240633967007145059238169316272801188545002241507574491016602198283476561530583702096974272113006896852697658057623933588687014538690164162119760608419660972061467550843980170148626815347192837614487018961643749603854280915790861826752460563186959602386800302758140739497972517325824248735419119966736912704534624453027487116625638328447564783906369191928302284971286430844702480427136707653278484610054013277772998222356764851732734249626893761880737113349188061557609251157794019463821982958266025686591606006973921881517160006588859042874566300335758746052153813932049445499828212227859027488398941798010131210017921545200546606454987206190095102265590304574340912125875352762569202017912461176645360720358340905280470229099093350971002302793971686366350725336772081701449731107375305962178213343335330844763282557624635987475288870877613909816964279752544847019867274436418118670220335751011943377926919674350490596328057674325515271011334952740062170400408044697211507985108945144155, 684605777319032573399618326216271533424390020132054858355505327056143519291469884021943660078934337409427126892664360501747276049742869725621139843497164175159869404428100546952230264004356096986979349764116935711784087020272283777981363931219530704937875655693373939496935803363791240911684099012119886891392936228086684231617244963038217596432988617763415528977798111007175716427134807771466696228531573968915748761877142801291709256367620122993715768529454004659251454329707468756223662533299254847561871461319958929951562127899416666783115815077817659869927332821540077246726350472882339813914437520450772604821005705053789627667810348450412215778215362933448265473086306977056893216300119228993758404601352104139407695708675053382447356452706701621574231250645948770374078266936853647016849084051493231152905840488818732358139593488646840313133942405020225979942358913635055321681323090441238016713606762142039846225394003178201865438508931959835534100834586309101357521148282161475870403928146625074167826108598643750786426493739239117835623652655218602866518354659332853600351009306040023776637087779402739692418496236928900165314862242762022573080883771488519286205833473504539423635830457106533377645614191652859183454533148812739031060326989138129739066161594456521866342536180559475954086983820947209865585201727255663826724095767739412811313116855476396592423630352975597758995174248628807797066331475967853499044788614405289151829299730803481293680132819746841448444792416673432975290477772762846740915027740456, 423534456970445472668641172964749303766462146408658318300735399110392799013445112127218231307898874626347813401376909347693365058566102267182189016932259846240243346642398450372383213375355119132541021819291694546534756096252410900945312946754783603382161390157587749105062597697675559478181046372046626789783613949068768952877986283217993330216719009750045777129374938240737931031036386875028437604273534191301683664296282685850022483084125133417761073114915203982156703761776379792347836838742647250130034536857397760855462903175437387785377499326259974557649446805771798372106978581030937527294913546531706103121696396423666399450999326050674727751028841429497548666919078582779346504690421495534807524356794316921421588000920357289449818706627721842917047537188539631845558252088378890232863978337973497652360861460619489895095565892208726373944324139249821354604109851091807417033697116674305744615108731840748160739864905821618296269772627337143908441133592300986012487606622134572802528346306185931896666362163415944210046907970355187432771414139443122141011340943205875037258269949056534092698377151333981999787199380673311632668297062504453241822976619333120279214483131554203478488897528048691827724295708792383118930715142922736764182583539613012048042188229325635622986043309205344203574436280321146874102184453754623832218069158768331903993869141964461565029247865802563674097328000471144819393544842419324372465703694323745972809964864305408098500597305369026125543192327617145313662623528515122878400343526617545213522838423158493240638197871566884793806417811586549119309743086889255186442017628210441791785580324, 114682410001645695480990253648075242443203326335194421149498034530268772020754170388727801476130961078999098923717079108811270749028519294102483180441822356303336877591722552228714385012178215883212554518198042529530592355295254097986167038128270125162768645987961496357748163467204594541301288994457844481947133908292570433698934790061826757666949083339030493822320141917718626975091375253585658880155108161880107161534989975312323528025757869788712300802213574165193305275239528784717049823393208485381036603519917187998717127246374009308816475465424586180643653669417659609028118652331557788763171502554889265436755621868505180087971072722196092666693160026561290053834235700535526781065475522994774618229234423306242780555407594896826093815565802515213503767056261005673654443070503656430291399398748631927230380886384816971492802603350276354534347879964720785149559671128346229909500239349568131018389410075731898860280130139987211091486783591787490408526689163202407342673773370861671575474597469734865378966796815625568547229184091351419192417155669668986841435726546790103908811842526220820750518628905130474222919992339159668687366371251965063772437178872959230222422475483861799508089813635946637974384444241845486324640187165245171366461429155929298101952013138496338295418763291536484434573170021966408330878360518783547960169035223253637729070609617354961906645750495143954179235489690854915744077518904298248636451838581190704782028986266463943549011793709212464436534329445821735732195091919092144010482408022453818146936729929266036516037790109265295293750677776174465999891220000342211650047176409240159861063194290041864362488667169532282165053404412021890041422297993354087672781972824351292607770557160, 5537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165005537098560354374307862679955703211517165]

2016年10月10日月曜日

161010(5)

Ruby


1988 年シドニー大会

「完全攻略数学オリンピック」に載っていた問題を見て、
オンライン整数列大辞典に載っていないか調べると
やはりあった。

A030101(http://oeis.org/A030101/list)
と比較し、答え合わせしてみる。

def A030101(n)
  (0..n).map{|i| i.to_s(2).reverse.to_i(2)}
end
ary = A030101(78)

# OEIS A030101のデータ
ary0 =
[0,1,1,3,1,5,3,7,1,9,5,13,3,11,7,15,1,17,9,25,5,
 21,13,29,3,19,11,27,7,23,15,31,1,33,17,49,9,41,25,
 57,5,37,21,53,13,45,29,61,3,35,19,51,11,43,27,59,
 7,39,23,55,15,47,31,63,1,65,33,97,17,81,49,113,9,
 73,41,105,25,89,57]
# 一致の確認
p ary == ary0

161010(4)

Ruby


3^n をn で割った余りについて(2)

A277289 のCOMMENTS に書いた
今のところ何番目かわからない要素について、
一応要素であることを確認しておく。

def pow(a, m, mod)
  return 1 % mod if m == 0
  k = pow(a, m >> 1, mod)
  k *= k
  return k % mod if m & 1 == 0
  return k * a % mod
end

[38832409867, 492385451091805616444].each{|i| p [i, pow(3, i, i) - i]}

出力結果
[38832409867, -7]
[492385451091805616444, -7]

161010(3)

新たな整数列(20)

https://oeis.org/A277288
https://oeis.org/A277289
https://oeis.org/A277340
が追加されました。

161010(2)

Ruby


3^n をn で割った余りについて(1)

A277126, A277274 のCOMMENTS に書いた
今のところ何番目かわからない要素について、
一応要素であることを確認しておく。

def pow(a, m, mod)
  return 1 % mod if m == 0
  k = pow(a, m >> 1, mod)
  k *= k
  return k % mod if m & 1 == 0
  return k * a % mod
end

[7469046275, 598371102650063].each{|i| p [i, pow(3, i, i)]}

出力結果
[7469046275, 7]
[598371102650063, 11]

161010

新たな整数列(19)

https://oeis.org/A277126
https://oeis.org/A277274
が追加されました。

2016年10月2日日曜日

161002(2)

Ruby


y^2 = x^3 - k

p を法とする楕円曲線上の点の数を求めてみた。

require 'prime'

def A(a3, a2, a4, a6, n)
  ary = []
  Prime.take(n).each{|p|
    a = Array.new(p, 0)
    (0..p - 1).each{|i| a[(i * i + a3 * i) % p] += 1}
    ary << (0..p - 1).inject(0){|s, i| s + a[(i * i * i + a2 * i * i + a4 * i + a6) % p]}
  }
  ary
end

m = 4
n = 25
ary = []
a = []
(1..m * 64).each{|i|
  j = A(0, 0, 0, -i, n)
  if !ary.include?(j)
    ary << j
    p [i, j]
  else
    a << i
  end
}
p a

n = 200
(1..m).each{|i| p A(0, 0, 0, -i, n) == A(0, 0, 0, -i * 64, n)}

出力結果
[1, [2, 3, 5, 3, 11, 11, 17, 27, 23, 29, 27, 47, 41, 51, 47, 53, 59, 47, 51, 71, 83, 75, 83, 89, 83]]
[2, [2, 3, 5, 6, 11, 18, 17, 26, 23, 29, 27, 48, 41, 35, 47, 53, 59, 60, 62, 71, 80, 96, 83, 89, 116]]
[3, [2, 3, 5, 2, 11, 8, 17, 26, 23, 29, 20, 38, 41, 38, 47, 53, 59, 47, 83, 71, 83, 62, 83, 89, 116]]
[4, [2, 3, 5, 12, 11, 20, 17, 18, 23, 29, 27, 38, 41, 51, 47, 53, 59, 74, 78, 71, 56, 66, 83, 89, 92]]
[5, [2, 3, 5, 8, 11, 15, 17, 12, 23, 29, 24, 36, 41, 38, 47, 53, 59, 62, 83, 71, 90, 66, 83, 89, 78]]
[6, [2, 3, 5, 11, 11, 6, 17, 18, 23, 29, 20, 27, 41, 48, 47, 53, 59, 60, 72, 71, 80, 92, 83, 89, 92]]
[7, [2, 3, 5, 7, 11, 6, 17, 27, 23, 29, 42, 38, 41, 56, 47, 53, 59, 60, 56, 71, 63, 92, 83, 89, 78]]
[8, [2, 3, 5, 3, 11, 15, 17, 11, 23, 29, 27, 27, 41, 35, 47, 53, 59, 75, 83, 71, 83, 75, 83, 89, 83]]
[9, [2, 3, 5, 6, 11, 20, 17, 18, 23, 29, 24, 26, 41, 30, 47, 53, 59, 47, 51, 71, 83, 66, 83, 89, 92]]
[10, [2, 3, 5, 2, 11, 8, 17, 20, 23, 29, 24, 47, 41, 48, 47, 53, 59, 48, 72, 71, 63, 75, 83, 89, 102]]
[11, [2, 3, 5, 12, 11, 18, 17, 27, 23, 29, 38, 47, 41, 51, 47, 53, 59, 75, 56, 71, 90, 66, 83, 89, 92]]
[12, [2, 3, 5, 8, 11, 11, 17, 11, 23, 29, 20, 26, 41, 38, 47, 53, 59, 74, 56, 71, 56, 83, 83, 89, 83]]
[13, [2, 3, 5, 11, 11, 13, 17, 20, 23, 29, 38, 36, 41, 30, 47, 53, 59, 62, 62, 71, 66, 96, 83, 89, 78]]
[14, [2, 3, 5, 7, 11, 11, 17, 26, 23, 29, 42, 27, 41, 30, 47, 53, 59, 74, 51, 71, 66, 83, 83, 89, 102]]
[15, [2, 3, 5, 3, 11, 18, 17, 20, 23, 29, 35, 48, 41, 30, 47, 53, 59, 62, 51, 71, 90, 83, 83, 89, 102]]
[16, [2, 3, 5, 6, 11, 8, 17, 12, 23, 29, 27, 26, 41, 51, 47, 53, 59, 62, 72, 71, 80, 96, 83, 89, 116]]
[17, [2, 3, 5, 2, 11, 20, 17, 12, 23, 29, 20, 48, 41, 30, 47, 53, 59, 48, 72, 71, 63, 83, 83, 89, 102]]
[18, [2, 3, 5, 12, 11, 15, 17, 11, 23, 29, 24, 36, 41, 56, 47, 53, 59, 60, 62, 71, 80, 75, 83, 89, 83]]
[19, [2, 3, 5, 8, 11, 6, 17, 19, 23, 29, 42, 36, 41, 38, 47, 53, 59, 74, 72, 71, 80, 66, 83, 89, 111]]
[20, [2, 3, 5, 11, 11, 6, 17, 27, 23, 29, 24, 48, 41, 38, 47, 53, 59, 47, 56, 71, 66, 96, 83, 89, 111]]
[21, [2, 3, 5, 7, 11, 15, 17, 26, 23, 29, 38, 26, 41, 51, 47, 53, 59, 60, 78, 71, 63, 75, 83, 89, 102]]
[22, [2, 3, 5, 3, 11, 20, 17, 26, 23, 29, 38, 48, 41, 35, 47, 53, 59, 62, 51, 71, 63, 75, 83, 89, 83]]
[23, [2, 3, 5, 6, 11, 8, 17, 18, 23, 29, 35, 27, 41, 48, 47, 53, 59, 75, 72, 71, 56, 66, 83, 89, 102]]
[24, [2, 3, 5, 2, 11, 18, 17, 12, 23, 29, 20, 36, 41, 48, 47, 53, 59, 75, 51, 71, 83, 62, 83, 89, 116]]
[25, [2, 3, 5, 12, 11, 11, 17, 18, 23, 29, 42, 26, 41, 30, 47, 53, 59, 74, 51, 71, 80, 96, 83, 89, 92]]
[26, [2, 3, 5, 8, 11, 13, 17, 27, 23, 29, 38, 47, 41, 56, 47, 53, 59, 48, 78, 71, 90, 66, 83, 89, 102]]
[27, [2, 3, 5, 11, 11, 11, 17, 11, 23, 29, 35, 47, 41, 35, 47, 53, 59, 47, 83, 71, 83, 83, 83, 89, 83]]
[28, [2, 3, 5, 7, 11, 18, 17, 18, 23, 29, 42, 26, 41, 56, 47, 53, 59, 75, 62, 71, 90, 62, 83, 89, 111]]
[29, [2, 3, 5, 3, 11, 8, 17, 20, 23, 29, 35, 27, 41, 56, 47, 53, 59, 48, 78, 71, 66, 92, 83, 89, 78]]
[30, [2, 3, 5, 6, 11, 20, 17, 27, 23, 29, 35, 38, 41, 56, 47, 53, 59, 48, 62, 71, 63, 62, 83, 89, 111]]
[31, [2, 3, 5, 2, 11, 15, 17, 11, 23, 29, 31, 27, 41, 48, 47, 53, 59, 48, 56, 71, 66, 66, 83, 89, 116]]
[32, [2, 3, 5, 12, 11, 6, 17, 20, 23, 29, 27, 36, 41, 35, 47, 53, 59, 48, 56, 71, 56, 66, 83, 89, 92]]
[33, [2, 3, 5, 8, 11, 6, 17, 26, 23, 29, 27, 38, 41, 38, 47, 53, 59, 75, 78, 71, 90, 83, 83, 89, 83]]
[34, [2, 3, 5, 11, 11, 15, 17, 20, 23, 29, 20, 38, 41, 56, 47, 53, 59, 47, 56, 71, 66, 62, 83, 89, 111]]
[35, [2, 3, 5, 7, 11, 20, 17, 12, 23, 29, 27, 48, 41, 51, 47, 53, 59, 48, 78, 71, 56, 62, 83, 89, 92]]
[36, [2, 3, 5, 3, 11, 8, 17, 12, 23, 29, 24, 47, 41, 30, 47, 53, 59, 74, 78, 71, 56, 96, 83, 89, 116]]
[37, [2, 3, 5, 6, 11, 18, 17, 11, 23, 29, 20, 37, 41, 38, 47, 53, 59, 75, 72, 71, 56, 62, 83, 89, 78]]
[38, [2, 3, 5, 2, 11, 11, 17, 19, 23, 29, 42, 47, 41, 48, 47, 53, 59, 75, 56, 71, 56, 75, 83, 89, 78]]
[39, [2, 3, 5, 12, 11, 13, 17, 27, 23, 29, 27, 48, 41, 35, 47, 53, 59, 62, 72, 71, 66, 92, 83, 89, 102]]
[40, [2, 3, 5, 8, 11, 11, 17, 26, 23, 29, 24, 38, 41, 48, 47, 53, 59, 60, 51, 71, 90, 66, 83, 89, 78]]
[41, [2, 3, 5, 11, 11, 18, 17, 26, 23, 29, 24, 38, 41, 51, 47, 53, 59, 47, 56, 71, 56, 83, 83, 89, 78]]
[42, [2, 3, 5, 7, 11, 8, 17, 18, 23, 29, 38, 36, 41, 35, 47, 53, 59, 74, 83, 71, 66, 96, 83, 89, 111]]
[43, [2, 3, 5, 3, 11, 20, 17, 12, 23, 29, 20, 27, 41, 43, 47, 53, 59, 60, 83, 71, 63, 62, 83, 89, 116]]
[44, [2, 3, 5, 6, 11, 15, 17, 18, 23, 29, 38, 38, 41, 51, 47, 53, 59, 48, 62, 71, 66, 96, 83, 89, 116]]
[45, [2, 3, 5, 2, 11, 6, 17, 27, 23, 29, 42, 27, 41, 35, 47, 53, 59, 62, 83, 71, 90, 96, 83, 89, 111]]
[46, [2, 3, 5, 12, 11, 6, 17, 11, 23, 29, 35, 26, 41, 38, 47, 53, 59, 62, 56, 71, 83, 75, 83, 89, 111]]
[47, [2, 3, 5, 8, 11, 15, 17, 18, 23, 29, 27, 47, 41, 51, 47, 53, 59, 74, 78, 71, 90, 92, 83, 89, 83]]
[48, [2, 3, 5, 11, 11, 20, 17, 20, 23, 29, 20, 47, 41, 38, 47, 53, 59, 62, 62, 71, 80, 92, 83, 89, 92]]
[49, [2, 3, 5, 7, 11, 8, 17, 27, 23, 29, 24, 26, 41, 48, 47, 53, 59, 74, 72, 71, 83, 96, 83, 89, 92]]
[50, [2, 3, 5, 3, 11, 18, 17, 11, 23, 29, 42, 36, 41, 56, 47, 53, 59, 75, 62, 71, 56, 66, 83, 89, 83]]
[51, [2, 3, 5, 6, 11, 11, 17, 20, 23, 29, 24, 27, 41, 35, 47, 53, 59, 48, 62, 71, 63, 96, 83, 89, 111]]
[52, [2, 3, 5, 2, 11, 13, 17, 26, 23, 29, 38, 48, 41, 30, 47, 53, 59, 47, 83, 71, 63, 75, 83, 89, 111]]
[53, [2, 3, 5, 12, 11, 11, 17, 20, 23, 29, 38, 26, 41, 48, 47, 53, 59, 75, 83, 71, 66, 92, 83, 89, 116]]
[54, [2, 3, 5, 8, 11, 18, 17, 12, 23, 29, 35, 48, 41, 51, 47, 53, 59, 60, 72, 71, 80, 62, 83, 89, 116]]
[55, [2, 3, 5, 11, 11, 8, 17, 12, 23, 29, 20, 36, 41, 38, 47, 53, 59, 60, 78, 71, 80, 96, 83, 89, 111]]
[56, [2, 3, 5, 7, 11, 20, 17, 11, 23, 29, 42, 36, 41, 30, 47, 53, 59, 62, 78, 71, 63, 92, 83, 89, 78]]
[57, [2, 3, 5, 3, 11, 15, 17, 19, 23, 29, 38, 48, 41, 30, 47, 53, 59, 74, 62, 71, 80, 83, 83, 89, 78]]
[58, [2, 3, 5, 6, 11, 6, 17, 27, 23, 29, 35, 26, 41, 30, 47, 53, 59, 47, 83, 71, 90, 83, 83, 89, 102]]
[59, [2, 3, 5, 2, 11, 6, 17, 26, 23, 29, 42, 48, 41, 51, 47, 53, 59, 60, 51, 71, 66, 62, 83, 89, 78]]
[60, [2, 3, 5, 12, 11, 15, 17, 26, 23, 29, 35, 27, 41, 30, 47, 53, 59, 47, 78, 71, 66, 92, 83, 89, 78]]
[61, [2, 3, 5, 8, 11, 20, 17, 18, 23, 29, 35, 36, 41, 56, 47, 53, 59, 61, 62, 71, 56, 83, 83, 89, 116]]
[62, [2, 3, 5, 11, 11, 8, 17, 12, 23, 29, 31, 26, 41, 38, 47, 53, 59, 47, 51, 71, 90, 75, 83, 89, 92]]
[63, [2, 3, 5, 7, 11, 18, 17, 18, 23, 29, 27, 47, 41, 38, 47, 53, 59, 60, 56, 71, 63, 62, 83, 89, 111]]
[65, [2, 3, 5, 6, 11, 13, 17, 11, 23, 29, 20, 26, 41, 35, 47, 53, 59, 74, 72, 71, 83, 75, 83, 89, 92]]
[66, [2, 3, 5, 2, 11, 11, 17, 18, 23, 29, 27, 27, 41, 48, 47, 53, 59, 62, 83, 71, 63, 62, 83, 89, 116]]
[67, [2, 3, 5, 12, 11, 18, 17, 20, 23, 29, 24, 38, 41, 48, 47, 53, 59, 60, 67, 71, 80, 75, 83, 89, 111]]
[68, [2, 3, 5, 8, 11, 8, 17, 27, 23, 29, 20, 27, 41, 30, 47, 53, 59, 60, 51, 71, 90, 92, 83, 89, 78]]
[69, [2, 3, 5, 11, 11, 20, 17, 11, 23, 29, 42, 36, 41, 56, 47, 53, 59, 75, 62, 71, 56, 83, 83, 89, 111]]
[70, [2, 3, 5, 7, 11, 15, 17, 20, 23, 29, 27, 38, 41, 35, 47, 53, 59, 47, 83, 71, 83, 92, 83, 89, 83]]
[71, [2, 3, 5, 3, 11, 6, 17, 26, 23, 29, 24, 38, 41, 56, 47, 53, 59, 48, 78, 71, 80, 83, 83, 89, 102]]
[72, [2, 3, 5, 6, 11, 6, 17, 20, 23, 29, 24, 48, 41, 56, 47, 53, 59, 75, 83, 71, 83, 66, 83, 89, 92]]
[73, [2, 3, 5, 2, 11, 15, 17, 12, 23, 29, 38, 47, 41, 56, 47, 53, 59, 74, 72, 71, 73, 66, 83, 89, 116]]
[74, [2, 3, 5, 12, 11, 20, 17, 12, 23, 29, 20, 37, 41, 48, 47, 53, 59, 62, 56, 71, 83, 92, 83, 89, 102]]
[75, [2, 3, 5, 8, 11, 8, 17, 11, 23, 29, 38, 47, 41, 35, 47, 53, 59, 74, 83, 71, 80, 92, 83, 89, 83]]
[76, [2, 3, 5, 11, 11, 18, 17, 19, 23, 29, 42, 48, 41, 38, 47, 53, 59, 62, 51, 71, 83, 96, 83, 89, 102]]
[77, [2, 3, 5, 7, 11, 11, 17, 27, 23, 29, 35, 38, 41, 56, 47, 53, 59, 62, 72, 71, 56, 62, 83, 89, 111]]
[78, [2, 3, 5, 3, 11, 13, 17, 26, 23, 29, 27, 38, 41, 51, 47, 53, 59, 48, 56, 71, 90, 83, 83, 89, 111]]
[79, [2, 3, 5, 6, 11, 11, 17, 26, 23, 29, 20, 36, 41, 30, 47, 53, 59, 60, 56, 71, 80, 79, 83, 89, 83]]
[80, [2, 3, 5, 2, 11, 18, 17, 18, 23, 29, 24, 27, 41, 38, 47, 53, 59, 74, 62, 71, 63, 75, 83, 89, 102]]
[81, [2, 3, 5, 12, 11, 8, 17, 12, 23, 29, 42, 38, 41, 48, 47, 53, 59, 47, 51, 71, 83, 96, 83, 89, 116]]
[82, [2, 3, 5, 8, 11, 20, 17, 18, 23, 29, 24, 27, 41, 35, 47, 53, 59, 60, 51, 71, 83, 62, 83, 89, 102]]
[83, [2, 3, 5, 11, 11, 15, 17, 27, 23, 29, 38, 26, 41, 48, 47, 53, 59, 62, 72, 71, 63, 66, 83, 89, 102]]
[84, [2, 3, 5, 7, 11, 6, 17, 11, 23, 29, 38, 47, 41, 51, 47, 53, 59, 75, 72, 71, 90, 66, 83, 89, 78]]
[85, [2, 3, 5, 3, 11, 6, 17, 18, 23, 29, 35, 47, 41, 35, 47, 53, 59, 75, 62, 71, 56, 92, 83, 89, 83]]
[86, [2, 3, 5, 6, 11, 15, 17, 20, 23, 29, 20, 26, 41, 43, 47, 53, 59, 74, 72, 71, 66, 92, 83, 89, 92]]
[87, [2, 3, 5, 2, 11, 20, 17, 27, 23, 29, 42, 36, 41, 51, 47, 53, 59, 48, 56, 71, 66, 75, 83, 89, 102]]
[88, [2, 3, 5, 12, 11, 8, 17, 11, 23, 29, 38, 27, 41, 35, 47, 53, 59, 47, 78, 71, 90, 66, 83, 89, 92]]
[89, [2, 3, 5, 8, 11, 18, 17, 20, 23, 29, 35, 48, 41, 38, 47, 53, 59, 75, 51, 71, 80, 75, 83, 89, 83]]
[90, [2, 3, 5, 11, 11, 11, 17, 26, 23, 29, 42, 26, 41, 51, 47, 53, 59, 48, 72, 71, 63, 66, 83, 89, 78]]
[91, [2, 3, 5, 7, 11, 13, 17, 20, 23, 29, 35, 48, 41, 38, 47, 53, 59, 48, 51, 71, 80, 83, 83, 89, 92]]
[92, [2, 3, 5, 3, 11, 11, 17, 12, 23, 29, 35, 36, 41, 48, 47, 53, 59, 48, 51, 71, 80, 96, 83, 89, 78]]
[93, [2, 3, 5, 6, 11, 18, 17, 12, 23, 29, 31, 36, 41, 56, 47, 53, 59, 48, 78, 71, 66, 83, 83, 89, 92]]
[94, [2, 3, 5, 2, 11, 8, 17, 11, 23, 29, 27, 48, 41, 35, 47, 53, 59, 75, 83, 71, 63, 83, 83, 89, 116]]
[95, [2, 3, 5, 12, 11, 20, 17, 19, 23, 29, 27, 26, 41, 30, 47, 53, 59, 47, 62, 71, 63, 96, 83, 89, 116]]
[96, [2, 3, 5, 8, 11, 15, 17, 27, 23, 29, 20, 48, 41, 48, 47, 53, 59, 48, 78, 71, 56, 83, 83, 89, 83]]
[97, [2, 3, 5, 11, 11, 6, 17, 26, 23, 29, 27, 27, 41, 51, 47, 53, 59, 74, 62, 71, 83, 75, 83, 89, 97]]
[98, [2, 3, 5, 7, 11, 6, 17, 26, 23, 29, 24, 36, 41, 38, 47, 53, 59, 75, 56, 71, 80, 66, 83, 89, 83]]
[99, [2, 3, 5, 3, 11, 15, 17, 18, 23, 29, 20, 26, 41, 30, 47, 53, 59, 75, 56, 71, 90, 96, 83, 89, 116]]
[100, [2, 3, 5, 6, 11, 20, 17, 12, 23, 29, 42, 47, 41, 30, 47, 53, 59, 62, 78, 71, 83, 75, 83, 89, 116]]
[101, [2, 3, 5, 2, 11, 8, 17, 18, 23, 29, 27, 47, 41, 30, 47, 53, 59, 60, 56, 71, 90, 75, 83, 89, 92]]
[102, [2, 3, 5, 12, 11, 18, 17, 27, 23, 29, 24, 26, 41, 51, 47, 53, 59, 47, 78, 71, 66, 66, 83, 89, 78]]
[103, [2, 3, 5, 8, 11, 11, 17, 11, 23, 29, 24, 27, 41, 30, 47, 53, 59, 74, 78, 71, 63, 62, 83, 89, 92]]
[104, [2, 3, 5, 11, 11, 13, 17, 18, 23, 29, 38, 38, 41, 56, 47, 53, 59, 60, 72, 71, 66, 96, 83, 89, 78]]
[105, [2, 3, 5, 7, 11, 11, 17, 20, 23, 29, 20, 27, 41, 38, 47, 53, 59, 48, 56, 71, 56, 66, 83, 89, 83]]
[106, [2, 3, 5, 3, 11, 18, 17, 27, 23, 29, 38, 36, 41, 38, 47, 53, 59, 62, 72, 71, 90, 83, 83, 89, 92]]
[107, [2, 3, 5, 6, 11, 8, 17, 11, 23, 29, 42, 38, 41, 51, 47, 53, 59, 62, 51, 71, 66, 62, 83, 89, 102]]
[108, [2, 3, 5, 2, 11, 20, 17, 20, 23, 29, 35, 38, 41, 35, 47, 53, 59, 74, 56, 71, 56, 92, 83, 89, 92]]
[109, [2, 3, 5, 12, 11, 15, 17, 26, 23, 29, 27, 48, 41, 48, 47, 53, 59, 62, 83, 71, 56, 62, 83, 89, 83]]
[110, [2, 3, 5, 8, 11, 6, 17, 20, 23, 29, 20, 47, 41, 48, 47, 53, 59, 74, 83, 71, 56, 66, 83, 89, 78]]
[111, [2, 3, 5, 11, 11, 6, 17, 12, 23, 29, 24, 37, 41, 30, 47, 53, 59, 75, 62, 71, 56, 66, 83, 89, 102]]
[112, [2, 3, 5, 7, 11, 15, 17, 12, 23, 29, 42, 47, 41, 56, 47, 53, 59, 48, 83, 71, 66, 83, 83, 89, 102]]
[113, [2, 3, 5, 3, 11, 20, 17, 11, 23, 29, 24, 48, 41, 35, 47, 53, 59, 47, 56, 71, 90, 62, 83, 89, 116]]
[114, [2, 3, 5, 6, 11, 8, 17, 19, 23, 29, 38, 38, 41, 56, 47, 53, 59, 75, 78, 71, 56, 62, 83, 89, 102]]
[115, [2, 3, 5, 2, 11, 18, 17, 27, 23, 29, 38, 38, 41, 56, 47, 53, 59, 60, 62, 71, 66, 96, 83, 89, 83]]
[116, [2, 3, 5, 12, 11, 11, 17, 26, 23, 29, 35, 36, 41, 56, 47, 53, 59, 60, 72, 71, 63, 62, 83, 89, 111]]
[117, [2, 3, 5, 8, 11, 13, 17, 26, 23, 29, 20, 27, 41, 48, 47, 53, 59, 62, 62, 71, 66, 75, 83, 89, 111]]
[118, [2, 3, 5, 11, 11, 11, 17, 18, 23, 29, 42, 38, 41, 35, 47, 53, 59, 74, 62, 71, 90, 92, 83, 89, 102]]
[119, [2, 3, 5, 7, 11, 18, 17, 12, 23, 29, 38, 27, 41, 38, 47, 53, 59, 47, 83, 71, 83, 66, 83, 89, 83]]
[120, [2, 3, 5, 3, 11, 8, 17, 18, 23, 29, 35, 26, 41, 56, 47, 53, 59, 60, 83, 71, 90, 83, 83, 89, 102]]
[121, [2, 3, 5, 6, 11, 20, 17, 27, 23, 29, 42, 47, 41, 51, 47, 53, 59, 47, 72, 71, 80, 96, 83, 89, 116]]
[122, [2, 3, 5, 2, 11, 15, 17, 11, 23, 29, 35, 47, 41, 30, 47, 53, 59, 61, 78, 71, 83, 62, 83, 89, 92]]
[123, [2, 3, 5, 12, 11, 6, 17, 18, 23, 29, 35, 26, 41, 38, 47, 53, 59, 47, 78, 71, 56, 96, 83, 89, 102]]
[124, [2, 3, 5, 8, 11, 6, 17, 20, 23, 29, 31, 36, 41, 48, 47, 53, 59, 60, 62, 71, 63, 96, 83, 89, 83]]
[125, [2, 3, 5, 11, 11, 15, 17, 27, 23, 29, 27, 27, 41, 35, 47, 53, 59, 47, 83, 71, 63, 75, 83, 89, 111]]
[126, [2, 3, 5, 7, 11, 20, 17, 11, 23, 29, 27, 48, 41, 48, 47, 53, 59, 74, 51, 71, 66, 92, 83, 89, 78]]
[127, [2, 3, 5, 3, 11, 8, 17, 20, 23, 29, 20, 26, 41, 51, 47, 53, 59, 62, 78, 71, 80, 92, 83, 89, 111]]
[129, [2, 3, 5, 2, 11, 11, 17, 20, 23, 29, 24, 36, 41, 43, 47, 53, 59, 60, 51, 71, 63, 66, 83, 89, 92]]
[130, [2, 3, 5, 12, 11, 13, 17, 12, 23, 29, 20, 36, 41, 51, 47, 53, 59, 75, 56, 71, 80, 96, 83, 89, 83]]
[131, [2, 3, 5, 8, 11, 11, 17, 12, 23, 29, 42, 48, 41, 35, 47, 53, 59, 47, 51, 71, 90, 75, 83, 89, 111]]
[132, [2, 3, 5, 11, 11, 18, 17, 11, 23, 29, 27, 26, 41, 38, 47, 53, 59, 48, 72, 71, 66, 92, 83, 89, 92]]
[133, [2, 3, 5, 7, 11, 8, 17, 19, 23, 29, 24, 48, 41, 51, 47, 53, 59, 75, 83, 71, 66, 62, 83, 89, 116]]
[134, [2, 3, 5, 3, 11, 20, 17, 27, 23, 29, 24, 27, 41, 38, 47, 53, 59, 74, 67, 71, 56, 96, 83, 89, 78]]
[135, [2, 3, 5, 6, 11, 15, 17, 26, 23, 29, 38, 36, 41, 48, 47, 53, 59, 62, 51, 71, 90, 92, 83, 89, 78]]
[136, [2, 3, 5, 2, 11, 6, 17, 26, 23, 29, 20, 26, 41, 56, 47, 53, 59, 74, 62, 71, 63, 83, 83, 89, 102]]
[137, [2, 3, 5, 12, 11, 6, 17, 18, 23, 29, 38, 47, 41, 35, 47, 53, 59, 62, 83, 71, 83, 83, 83, 89, 78]]
[138, [2, 3, 5, 8, 11, 15, 17, 12, 23, 29, 42, 47, 41, 30, 47, 53, 59, 62, 78, 71, 83, 62, 83, 89, 78]]
[139, [2, 3, 5, 11, 11, 20, 17, 18, 23, 29, 35, 26, 41, 48, 47, 53, 59, 48, 83, 71, 63, 92, 83, 89, 111]]
[140, [2, 3, 5, 7, 11, 8, 17, 27, 23, 29, 27, 27, 41, 51, 47, 53, 59, 60, 72, 71, 80, 83, 83, 89, 116]]
[141, [2, 3, 5, 3, 11, 18, 17, 11, 23, 29, 20, 38, 41, 38, 47, 53, 59, 74, 56, 71, 90, 75, 83, 89, 116]]
[142, [2, 3, 5, 6, 11, 11, 17, 18, 23, 29, 24, 27, 41, 30, 47, 53, 59, 47, 83, 71, 56, 62, 83, 89, 111]]
[143, [2, 3, 5, 2, 11, 13, 17, 20, 23, 29, 42, 36, 41, 30, 47, 53, 59, 60, 51, 71, 83, 75, 83, 89, 111]]
[144, [2, 3, 5, 12, 11, 11, 17, 27, 23, 29, 24, 38, 41, 30, 47, 53, 59, 62, 72, 71, 80, 75, 83, 89, 83]]
[145, [2, 3, 5, 8, 11, 18, 17, 11, 23, 29, 38, 38, 41, 51, 47, 53, 59, 75, 56, 71, 83, 62, 83, 89, 92]]
[146, [2, 3, 5, 11, 11, 8, 17, 20, 23, 29, 38, 48, 41, 30, 47, 53, 59, 75, 56, 71, 73, 75, 83, 89, 92]]
[147, [2, 3, 5, 7, 11, 20, 17, 26, 23, 29, 35, 47, 41, 56, 47, 53, 59, 74, 62, 71, 83, 92, 83, 89, 83]]
[148, [2, 3, 5, 3, 11, 15, 17, 20, 23, 29, 20, 37, 41, 38, 47, 53, 59, 48, 51, 71, 80, 83, 83, 89, 111]]
[149, [2, 3, 5, 6, 11, 6, 17, 12, 23, 29, 42, 47, 41, 38, 47, 53, 59, 47, 51, 71, 83, 92, 83, 89, 111]]
[150, [2, 3, 5, 2, 11, 6, 17, 12, 23, 29, 38, 48, 41, 51, 47, 53, 59, 75, 72, 71, 56, 83, 83, 89, 116]]
[151, [2, 3, 5, 12, 11, 15, 17, 11, 23, 29, 35, 38, 41, 35, 47, 53, 59, 48, 72, 71, 90, 66, 83, 89, 116]]
[152, [2, 3, 5, 8, 11, 20, 17, 19, 23, 29, 42, 38, 41, 48, 47, 53, 59, 48, 62, 71, 80, 66, 83, 89, 111]]
[153, [2, 3, 5, 11, 11, 8, 17, 27, 23, 29, 35, 36, 41, 48, 47, 53, 59, 48, 72, 71, 63, 92, 83, 89, 78]]
[154, [2, 3, 5, 7, 11, 18, 17, 26, 23, 29, 35, 27, 41, 30, 47, 53, 59, 48, 56, 71, 83, 92, 83, 89, 78]]
[155, [2, 3, 5, 3, 11, 11, 17, 26, 23, 29, 31, 38, 41, 56, 47, 53, 59, 75, 78, 71, 83, 96, 83, 89, 102]]
[156, [2, 3, 5, 6, 11, 13, 17, 18, 23, 29, 27, 27, 41, 35, 47, 53, 59, 47, 51, 71, 63, 62, 83, 89, 78]]
[157, [2, 3, 5, 2, 11, 11, 17, 12, 23, 29, 27, 26, 41, 56, 47, 53, 59, 48, 72, 71, 90, 83, 83, 89, 78]]
[158, [2, 3, 5, 12, 11, 18, 17, 18, 23, 29, 20, 47, 41, 56, 47, 53, 59, 74, 51, 71, 56, 79, 83, 89, 116]]
[159, [2, 3, 5, 8, 11, 8, 17, 27, 23, 29, 27, 47, 41, 56, 47, 53, 59, 75, 51, 71, 66, 75, 83, 89, 92]]
[160, [2, 3, 5, 11, 11, 20, 17, 11, 23, 29, 24, 26, 41, 48, 47, 53, 59, 75, 78, 71, 66, 96, 83, 89, 111]]
[161, [2, 3, 5, 7, 11, 15, 17, 18, 23, 29, 20, 36, 41, 35, 47, 53, 59, 62, 83, 71, 90, 62, 83, 89, 83]]
[162, [2, 3, 5, 3, 11, 6, 17, 20, 23, 29, 42, 27, 41, 38, 47, 53, 59, 60, 62, 71, 80, 66, 83, 89, 92]]
[163, [2, 3, 5, 6, 11, 6, 17, 27, 23, 29, 27, 48, 41, 56, 47, 53, 59, 47, 78, 71, 63, 66, 83, 89, 116]]
[164, [2, 3, 5, 2, 11, 15, 17, 11, 23, 29, 24, 26, 41, 51, 47, 53, 59, 74, 62, 71, 80, 92, 83, 89, 111]]
[165, [2, 3, 5, 12, 11, 20, 17, 20, 23, 29, 24, 48, 41, 30, 47, 53, 59, 60, 56, 71, 80, 92, 83, 89, 78]]
[166, [2, 3, 5, 8, 11, 8, 17, 26, 23, 29, 38, 36, 41, 38, 47, 53, 59, 48, 56, 71, 66, 75, 83, 89, 111]]
[167, [2, 3, 5, 11, 11, 18, 17, 20, 23, 29, 20, 36, 41, 48, 47, 53, 59, 62, 78, 71, 63, 66, 83, 89, 83]]
[168, [2, 3, 5, 7, 11, 11, 17, 12, 23, 29, 38, 48, 41, 35, 47, 53, 59, 62, 56, 71, 63, 75, 83, 89, 102]]
[169, [2, 3, 5, 3, 11, 13, 17, 12, 23, 29, 42, 26, 41, 48, 47, 53, 59, 74, 78, 71, 56, 66, 83, 89, 92]]
[170, [2, 3, 5, 6, 11, 11, 17, 11, 23, 29, 35, 48, 41, 51, 47, 53, 59, 62, 78, 71, 83, 83, 83, 89, 116]]
[171, [2, 3, 5, 2, 11, 18, 17, 19, 23, 29, 27, 27, 41, 35, 47, 53, 59, 74, 72, 71, 80, 96, 83, 89, 102]]
[172, [2, 3, 5, 12, 11, 8, 17, 27, 23, 29, 20, 36, 41, 43, 47, 53, 59, 75, 56, 71, 90, 83, 83, 89, 83]]
[173, [2, 3, 5, 8, 11, 20, 17, 26, 23, 29, 24, 26, 41, 51, 47, 53, 59, 48, 72, 71, 83, 83, 83, 89, 102]]
[174, [2, 3, 5, 11, 11, 15, 17, 26, 23, 29, 42, 47, 41, 35, 47, 53, 59, 47, 51, 71, 90, 96, 83, 89, 111]]
[175, [2, 3, 5, 7, 11, 6, 17, 18, 23, 29, 24, 47, 41, 38, 47, 53, 59, 75, 56, 71, 66, 83, 83, 89, 111]]
[176, [2, 3, 5, 3, 11, 6, 17, 12, 23, 29, 38, 26, 41, 51, 47, 53, 59, 60, 83, 71, 63, 75, 83, 89, 83]]
[177, [2, 3, 5, 6, 11, 15, 17, 18, 23, 29, 38, 27, 41, 38, 47, 53, 59, 60, 83, 71, 66, 66, 83, 89, 102]]
[178, [2, 3, 5, 2, 11, 20, 17, 27, 23, 29, 35, 38, 41, 48, 47, 53, 59, 62, 62, 71, 56, 96, 83, 89, 116]]
[179, [2, 3, 5, 12, 11, 8, 17, 11, 23, 29, 20, 27, 41, 56, 47, 53, 59, 74, 83, 71, 90, 75, 83, 89, 102]]
[180, [2, 3, 5, 8, 11, 18, 17, 18, 23, 29, 42, 36, 41, 35, 47, 53, 59, 47, 56, 71, 66, 75, 83, 89, 102]]
[181, [2, 3, 5, 11, 11, 11, 17, 20, 23, 29, 38, 38, 41, 30, 47, 53, 59, 60, 78, 71, 56, 66, 83, 89, 78]]
[182, [2, 3, 5, 7, 11, 13, 17, 27, 23, 29, 35, 38, 41, 48, 47, 53, 59, 47, 62, 71, 56, 62, 83, 89, 83]]
[183, [2, 3, 5, 3, 11, 11, 17, 11, 23, 29, 42, 48, 41, 51, 47, 53, 59, 61, 72, 71, 56, 96, 83, 89, 92]]
[184, [2, 3, 5, 6, 11, 18, 17, 20, 23, 29, 35, 47, 41, 38, 47, 53, 59, 47, 62, 71, 56, 66, 83, 89, 102]]
[185, [2, 3, 5, 2, 11, 8, 17, 26, 23, 29, 35, 37, 41, 30, 47, 53, 59, 60, 62, 71, 66, 83, 83, 89, 92]]
[186, [2, 3, 5, 12, 11, 20, 17, 20, 23, 29, 31, 47, 41, 30, 47, 53, 59, 47, 83, 71, 90, 62, 83, 89, 83]]
[187, [2, 3, 5, 8, 11, 15, 17, 12, 23, 29, 27, 48, 41, 30, 47, 53, 59, 74, 83, 71, 56, 92, 83, 89, 78]]
[188, [2, 3, 5, 11, 11, 6, 17, 12, 23, 29, 27, 38, 41, 51, 47, 53, 59, 62, 72, 71, 66, 62, 83, 89, 92]]
[189, [2, 3, 5, 7, 11, 6, 17, 11, 23, 29, 20, 38, 41, 30, 47, 53, 59, 60, 78, 71, 63, 66, 83, 89, 78]]
[190, [2, 3, 5, 3, 11, 15, 17, 19, 23, 29, 27, 36, 41, 56, 47, 53, 59, 60, 78, 71, 66, 66, 83, 89, 92]]
[191, [2, 3, 5, 6, 11, 20, 17, 27, 23, 29, 24, 27, 41, 38, 47, 53, 59, 75, 62, 71, 90, 83, 83, 89, 116]]
[193, [2, 3, 5, 12, 11, 18, 17, 26, 23, 29, 42, 27, 41, 51, 47, 53, 59, 48, 51, 71, 90, 62, 83, 89, 83]]
[194, [2, 3, 5, 8, 11, 11, 17, 18, 23, 29, 27, 26, 41, 35, 47, 53, 59, 75, 78, 71, 80, 96, 83, 89, 97]]
[195, [2, 3, 5, 11, 11, 13, 17, 12, 23, 29, 24, 47, 41, 48, 47, 53, 59, 74, 62, 71, 83, 62, 83, 89, 83]]
[196, [2, 3, 5, 7, 11, 11, 17, 18, 23, 29, 24, 47, 41, 48, 47, 53, 59, 62, 51, 71, 56, 75, 83, 89, 116]]
[197, [2, 3, 5, 3, 11, 18, 17, 27, 23, 29, 38, 26, 41, 30, 47, 53, 59, 74, 56, 71, 63, 92, 83, 89, 116]]
[198, [2, 3, 5, 6, 11, 8, 17, 11, 23, 29, 20, 36, 41, 56, 47, 53, 59, 62, 51, 71, 63, 66, 83, 89, 92]]
[199, [2, 3, 5, 2, 11, 20, 17, 18, 23, 29, 38, 27, 41, 35, 47, 53, 59, 62, 72, 71, 66, 83, 83, 89, 78]]
[200, [2, 3, 5, 12, 11, 15, 17, 20, 23, 29, 42, 48, 41, 56, 47, 53, 59, 48, 83, 71, 80, 96, 83, 89, 92]]
[201, [2, 3, 5, 8, 11, 6, 17, 27, 23, 29, 35, 26, 41, 56, 47, 53, 59, 60, 67, 71, 80, 62, 83, 89, 78]]
[202, [2, 3, 5, 11, 11, 6, 17, 11, 23, 29, 27, 48, 41, 56, 47, 53, 59, 74, 51, 71, 63, 96, 83, 89, 83]]
[203, [2, 3, 5, 7, 11, 15, 17, 20, 23, 29, 20, 36, 41, 48, 47, 53, 59, 47, 62, 71, 80, 96, 83, 89, 92]]
[204, [2, 3, 5, 3, 11, 20, 17, 26, 23, 29, 24, 36, 41, 35, 47, 53, 59, 60, 83, 71, 90, 75, 83, 89, 102]]
[205, [2, 3, 5, 6, 11, 8, 17, 20, 23, 29, 42, 48, 41, 38, 47, 53, 59, 62, 78, 71, 66, 92, 83, 89, 92]]
[206, [2, 3, 5, 2, 11, 18, 17, 12, 23, 29, 24, 26, 41, 56, 47, 53, 59, 75, 83, 71, 66, 92, 83, 89, 83]]
[207, [2, 3, 5, 12, 11, 11, 17, 12, 23, 29, 38, 48, 41, 51, 47, 53, 59, 75, 72, 71, 56, 96, 83, 89, 78]]
[208, [2, 3, 5, 8, 11, 13, 17, 11, 23, 29, 38, 27, 41, 30, 47, 53, 59, 74, 56, 71, 90, 66, 83, 89, 102]]
[209, [2, 3, 5, 11, 11, 11, 17, 19, 23, 29, 35, 36, 41, 38, 47, 53, 59, 48, 83, 71, 63, 96, 83, 89, 102]]
[210, [2, 3, 5, 7, 11, 18, 17, 27, 23, 29, 20, 26, 41, 48, 47, 53, 59, 47, 51, 71, 83, 75, 83, 89, 116]]
[211, [2, 3, 5, 3, 11, 8, 17, 26, 23, 29, 42, 47, 41, 35, 47, 53, 59, 75, 72, 71, 83, 92, 83, 89, 102]]
[212, [2, 3, 5, 6, 11, 20, 17, 26, 23, 29, 38, 47, 41, 48, 47, 53, 59, 48, 56, 71, 63, 62, 83, 89, 83]]
[213, [2, 3, 5, 2, 11, 15, 17, 18, 23, 29, 35, 26, 41, 51, 47, 53, 59, 48, 56, 71, 80, 96, 83, 89, 111]]
[214, [2, 3, 5, 12, 11, 6, 17, 12, 23, 29, 42, 27, 41, 35, 47, 53, 59, 48, 62, 71, 90, 92, 83, 89, 111]]
[215, [2, 3, 5, 8, 11, 6, 17, 18, 23, 29, 35, 38, 41, 43, 47, 53, 59, 48, 51, 71, 56, 83, 83, 89, 102]]
[216, [2, 3, 5, 11, 11, 15, 17, 27, 23, 29, 35, 27, 41, 51, 47, 53, 59, 75, 51, 71, 83, 83, 83, 89, 83]]
[217, [2, 3, 5, 7, 11, 20, 17, 11, 23, 29, 31, 36, 41, 35, 47, 53, 59, 47, 72, 71, 80, 62, 83, 89, 102]]
[218, [2, 3, 5, 3, 11, 8, 17, 18, 23, 29, 27, 38, 41, 38, 47, 53, 59, 48, 72, 71, 83, 92, 83, 89, 116]]
[219, [2, 3, 5, 6, 11, 18, 17, 20, 23, 29, 27, 38, 41, 51, 47, 53, 59, 74, 62, 71, 73, 83, 83, 89, 92]]
[220, [2, 3, 5, 2, 11, 11, 17, 27, 23, 29, 20, 48, 41, 38, 47, 53, 59, 75, 72, 71, 83, 75, 83, 89, 102]]
[221, [2, 3, 5, 12, 11, 13, 17, 11, 23, 29, 27, 47, 41, 48, 47, 53, 59, 75, 56, 71, 80, 62, 83, 89, 83]]
[222, [2, 3, 5, 8, 11, 11, 17, 20, 23, 29, 24, 37, 41, 56, 47, 53, 59, 62, 78, 71, 83, 75, 83, 89, 111]]
[223, [2, 3, 5, 11, 11, 18, 17, 26, 23, 29, 20, 47, 41, 35, 47, 53, 59, 60, 51, 71, 56, 75, 83, 89, 78]]
[224, [2, 3, 5, 7, 11, 8, 17, 20, 23, 29, 42, 48, 41, 30, 47, 53, 59, 47, 72, 71, 90, 62, 83, 89, 111]]
[225, [2, 3, 5, 3, 11, 20, 17, 12, 23, 29, 27, 38, 41, 48, 47, 53, 59, 74, 51, 71, 80, 75, 83, 89, 116]]
[226, [2, 3, 5, 6, 11, 15, 17, 12, 23, 29, 24, 38, 41, 51, 47, 53, 59, 60, 51, 71, 63, 92, 83, 89, 92]]
[227, [2, 3, 5, 2, 11, 6, 17, 11, 23, 29, 24, 36, 41, 38, 47, 53, 59, 48, 78, 71, 83, 83, 83, 89, 83]]
[228, [2, 3, 5, 12, 11, 6, 17, 19, 23, 29, 38, 27, 41, 30, 47, 53, 59, 62, 83, 71, 83, 92, 83, 89, 111]]
[229, [2, 3, 5, 8, 11, 15, 17, 27, 23, 29, 20, 38, 41, 30, 47, 53, 59, 62, 62, 71, 63, 83, 83, 89, 92]]
[230, [2, 3, 5, 11, 11, 20, 17, 26, 23, 29, 38, 27, 41, 30, 47, 53, 59, 74, 78, 71, 90, 66, 83, 89, 116]]
[231, [2, 3, 5, 7, 11, 8, 17, 26, 23, 29, 42, 26, 41, 51, 47, 53, 59, 62, 62, 71, 56, 66, 83, 89, 78]]
[232, [2, 3, 5, 3, 11, 18, 17, 18, 23, 29, 35, 47, 41, 30, 47, 53, 59, 74, 56, 71, 66, 92, 83, 89, 78]]
[233, [2, 3, 5, 6, 11, 11, 17, 12, 23, 29, 27, 47, 41, 56, 47, 53, 59, 75, 56, 71, 66, 92, 83, 89, 102]]
[234, [2, 3, 5, 2, 11, 13, 17, 18, 23, 29, 20, 26, 41, 38, 47, 53, 59, 48, 78, 71, 90, 96, 83, 89, 78]]
[235, [2, 3, 5, 12, 11, 11, 17, 27, 23, 29, 24, 36, 41, 38, 47, 53, 59, 47, 56, 71, 80, 62, 83, 89, 78]]
[236, [2, 3, 5, 8, 11, 18, 17, 11, 23, 29, 42, 27, 41, 51, 47, 53, 59, 75, 78, 71, 63, 83, 83, 89, 111]]
[237, [2, 3, 5, 11, 11, 8, 17, 18, 23, 29, 24, 48, 41, 35, 47, 53, 59, 60, 78, 71, 80, 79, 83, 89, 116]]
[238, [2, 3, 5, 7, 11, 20, 17, 20, 23, 29, 38, 26, 41, 48, 47, 53, 59, 60, 72, 71, 80, 75, 83, 89, 116]]
[239, [2, 3, 5, 3, 11, 15, 17, 27, 23, 29, 38, 48, 41, 48, 47, 53, 59, 62, 56, 71, 66, 96, 83, 89, 111]]
[240, [2, 3, 5, 6, 11, 6, 17, 11, 23, 29, 35, 36, 41, 30, 47, 53, 59, 74, 72, 71, 63, 62, 83, 89, 111]]
[241, [2, 3, 5, 2, 11, 6, 17, 20, 23, 29, 20, 36, 41, 56, 47, 53, 59, 47, 51, 71, 63, 66, 83, 89, 83]]
[242, [2, 3, 5, 12, 11, 15, 17, 26, 23, 29, 42, 48, 41, 35, 47, 53, 59, 60, 56, 71, 56, 66, 83, 89, 92]]
[243, [2, 3, 5, 8, 11, 20, 17, 20, 23, 29, 38, 26, 41, 56, 47, 53, 59, 47, 83, 71, 83, 92, 83, 89, 92]]
[244, [2, 3, 5, 11, 11, 8, 17, 12, 23, 29, 35, 48, 41, 56, 47, 53, 59, 61, 83, 71, 80, 92, 83, 89, 83]]
[245, [2, 3, 5, 7, 11, 18, 17, 12, 23, 29, 42, 27, 41, 56, 47, 53, 59, 47, 62, 71, 90, 75, 83, 89, 111]]
[246, [2, 3, 5, 3, 11, 11, 17, 11, 23, 29, 35, 36, 41, 48, 47, 53, 59, 60, 83, 71, 83, 66, 83, 89, 111]]
[247, [2, 3, 5, 6, 11, 13, 17, 19, 23, 29, 35, 26, 41, 35, 47, 53, 59, 47, 56, 71, 90, 75, 83, 89, 116]]
[248, [2, 3, 5, 2, 11, 11, 17, 27, 23, 29, 31, 47, 41, 38, 47, 53, 59, 74, 78, 71, 66, 66, 83, 89, 116]]
[249, [2, 3, 5, 12, 11, 18, 17, 26, 23, 29, 27, 47, 41, 56, 47, 53, 59, 62, 62, 71, 63, 83, 83, 89, 111]]
[250, [2, 3, 5, 8, 11, 8, 17, 26, 23, 29, 27, 26, 41, 51, 47, 53, 59, 60, 72, 71, 66, 96, 83, 89, 78]]
[251, [2, 3, 5, 11, 11, 20, 17, 18, 23, 29, 20, 27, 41, 30, 47, 53, 59, 60, 62, 71, 56, 83, 83, 89, 78]]
[252, [2, 3, 5, 7, 11, 15, 17, 12, 23, 29, 27, 38, 41, 38, 47, 53, 59, 75, 62, 71, 90, 83, 83, 89, 102]]
[253, [2, 3, 5, 3, 11, 6, 17, 18, 23, 29, 24, 27, 41, 48, 47, 53, 59, 47, 83, 71, 66, 96, 83, 89, 78]]
[254, [2, 3, 5, 6, 11, 6, 17, 27, 23, 29, 20, 36, 41, 35, 47, 53, 59, 48, 83, 71, 56, 83, 83, 89, 78]]
[255, [2, 3, 5, 2, 11, 15, 17, 11, 23, 29, 42, 38, 41, 48, 47, 53, 59, 75, 72, 71, 56, 75, 83, 89, 116]]
[64, 128, 192, 256]
true
true
true
true

161002

Ruby


p を法とする楕円曲線上の点の数(4)

http://pari.math.u-bordeaux.fr/archives/pari-dev-0506/msg00000.html
を見て、以下について、p を法とする楕円曲線上の点の数を求め、
それぞれが一致することを確認しようと思った。

y^2 = x^3 - 432,
y^2 + y = x^3 - 7

require 'prime'

def A(a3, a2, a4, a6, n)
  ary = []
  Prime.take(n).each{|p|
    a = Array.new(p, 0)
    (0..p - 1).each{|i| a[(i * i + a3 * i) % p] += 1}
    ary << (0..p - 1).inject(0){|s, i| s + a[(i * i * i + a2 * i * i + a4 * i + a6) % p]}
  }
  ary
end

n = 15000
ary = A(0, 0, 0, -432, n)
p ary == A(1, 0, 0, -7, n)

出力結果
true

2016年10月1日土曜日

161001(2)

Ruby


p を法とする楕円曲線上の点の数(3)

y^2 + y = x^3 - x^2 - 40x - 221,
y^2 + y = x^3 - x^2 - 1250x + 31239,
y^2 + y = x^3 - x^2 - 946260x + 354609639

これらについて、p を法とする楕円曲線上の点の数を求め、
それぞれが一致することを確認してみた。

y^2 + y = x^3 - x^2 - 7x + 10,
y^2 + y = x^3 - x^2 - 887x - 10143

またこれらについても、p を法とする楕円曲線上の点の数を求め、
それぞれが一致することを確認してみた。

require 'prime'

def A(a3, a2, a4, a6, n)
  ary = []
  Prime.take(n).each{|p|
    a = Array.new(p, 0)
    (0..p - 1).each{|i| a[(i * i + a3 * i) % p] += 1}
    ary << (0..p - 1).inject(0){|s, i| s + a[(i * i * i + a2 * i * i + a4 * i + a6) % p]}
  }
  ary
end

n = 500
p ary = A(1, -1, -40, -221, n)
p ary == A(1, -1,   -1250,     31239, n)
p ary == A(1, -1, -946260, 354609639, n)

p ary = A(1, -1, -7, 10, n)
p ary == A(1, -1, -887, -10143, n)

出力結果
[0, 4, 4, 5, 11, 17, 15, 19, 24, 29, 24, 34, 33, 37, 39, 59, 54, 73, 74, 74, 77, 69, 77, 74, 104, 103, 119, 125, 119, 104, 135, 113, 144, 149, 139, 153, 164, 159, 155, 167, 194, 174, 174, 197, 195, 199, 223, 204, 245, 214, 257, 209, 233, 274, 259, 277, 259, 243, 275, 263, 287, 317, 315, 299, 314, 304, 324, 315, 375, 379, 374, 339, 384, 347, 384, 384, 404, 399, 399, 379, 399, 399, 413, 444, 479, 454, 414, 445, 473, 474, 494, 499, 464, 483, 479, 477, 494, 524, 507, 533, 555, 555, 567, 569, 543, 544, 559, 637, 559, 603, 585, 597, 599, 644, 624, 674, 614, 654, 694, 669, 624, 687, 635, 699, 674, 703, 734, 704, 724, 697, 789, 747, 774, 779, 773, 789, 779, 755, 744, 809, 773, 843, 784, 775, 804, 844, 867, 865, 874, 839, 865, 924, 879, 865, 919, 899, 929, 959, 945, 983, 974, 987, 935, 924, 1004, 944, 999, 1035, 999, 974, 1009, 999, 1063, 1017, 1034, 1104, 1053, 1074, 1107, 1049, 1079, 1033, 1144, 1055, 1154, 1139, 1165, 1099, 1179, 1153, 1184, 1197, 1174, 1199, 1175, 1214, 1203, 1254, 1175, 1237, 1289, 1213, 1219, 1289, 1284, 1324, 1294, 1247, 1289, 1299, 1345, 1274, 1264, 1279, 1289, 1274, 1395, 1373, 1439, 1334, 1313, 1459, 1424, 1394, 1415, 1359, 1379, 1439, 1475, 1503, 1524, 1439, 1493, 1513, 1434, 1545, 1504, 1457, 1444, 1474, 1564, 1563, 1579, 1564, 1497, 1499, 1619, 1599, 1549, 1617, 1565, 1603, 1574, 1619, 1607, 1599, 1599, 1705, 1604, 1655, 1667, 1715, 1719, 1687, 1739, 1659, 1754, 1724, 1677, 1727, 1724, 1804, 1719, 1719, 1785, 1724, 1844, 1799, 1853, 1823, 1767, 1874, 1795, 1923, 1895, 1874, 1879, 1895, 1914, 1959, 1824, 1959, 1877, 1913, 1987, 1909, 1974, 1894, 2009, 1965, 1927, 1925, 1979, 1999, 2024, 2034, 1964, 1984, 1979, 2137, 2087, 1999, 2063, 1994, 2135, 2079, 2064, 2073, 2199, 2149, 2063, 2064, 2083, 2234, 2127, 2174, 2224, 2204, 2255, 2217, 2243, 2159, 2169, 2187, 2203, 2174, 2244, 2277, 2274, 2325, 2264, 2354, 2369, 2324, 2274, 2349, 2274, 2384, 2303, 2414, 2343, 2374, 2399, 2347, 2339, 2447, 2474, 2473, 2395, 2454, 2355, 2483, 2444, 2409, 2464, 2484, 2525, 2517, 2593, 2474, 2539, 2577, 2529, 2453, 2544, 2559, 2533, 2607, 2579, 2635, 2599, 2594, 2685, 2695, 2699, 2624, 2599, 2684, 2667, 2664, 2684, 2734, 2754, 2724, 2624, 2657, 2649, 2699, 2799, 2683, 2799, 2704, 2815, 2819, 2769, 2833, 2839, 2853, 2759, 2844, 2827, 2775, 2839, 2853, 2775, 2924, 2839, 2944, 2859, 2957, 2934, 3005, 2999, 2889, 3039, 2954, 3044, 3039, 3024, 2919, 2974, 3073, 2934, 2984, 3024, 2999, 3009, 3024, 3054, 3059, 3054, 3064, 3189, 3029, 3143, 3145, 3137, 3185, 3124, 3213, 3185, 3199, 3197, 3199, 3194, 3324, 3299, 3203, 3327, 3199, 3319, 3274, 3399, 3374, 3405, 3317, 3319, 3399, 3229, 3374, 3387, 3364, 3404, 3273, 3474, 3377, 3374, 3299, 3425, 3404, 3499, 3489, 3514, 3423, 3559, 3505, 3554, 3474, 3399, 3523, 3495, 3545, 3564, 3557, 3559, 3583, 3494, 3584, 3559, 3543]
true
true
[2, 4, 8, 7, 11, 13, 17, 19, 32, 29, 36, 30, 41, 43, 59, 47, 74, 61, 54, 74, 73, 79, 83, 98, 80, 101, 107, 107, 109, 92, 127, 131, 140, 139, 149, 151, 180, 179, 167, 173, 158, 206, 206, 193, 197, 219, 211, 224, 227, 234, 233, 239, 241, 278, 239, 263, 239, 271, 277, 281, 283, 293, 307, 323, 294, 344, 296, 337, 347, 349, 362, 359, 404, 373, 404, 344, 404, 395, 371, 409, 395, 411, 431, 404, 439, 422, 410, 457, 461, 494, 470, 479, 444, 491, 459, 503, 554, 536, 523, 541, 547, 557, 563, 569, 571, 624, 635, 593, 635, 601, 607, 613, 659, 620, 624, 686, 602, 674, 602, 659, 648, 673, 677, 659, 674, 701, 690, 668, 780, 733, 739, 743, 774, 795, 761, 769, 719, 787, 800, 809, 811, 821, 872, 827, 800, 884, 853, 857, 890, 899, 877, 824, 939, 887, 899, 971, 919, 899, 937, 941, 890, 953, 967, 1016, 1004, 932, 1011, 997, 1009, 1022, 1019, 971, 1031, 1033, 998, 1064, 1051, 998, 1063, 1069, 1059, 1091, 1152, 1097, 1082, 1103, 1117, 1187, 1129, 1151, 1092, 1163, 1218, 1163, 1187, 1262, 1201, 1214, 1217, 1223, 1229, 1231, 1295, 1249, 1328, 1220, 1214, 1283, 1289, 1251, 1297, 1346, 1284, 1235, 1319, 1374, 1327, 1361, 1379, 1334, 1381, 1399, 1484, 1394, 1427, 1429, 1379, 1499, 1447, 1451, 1484, 1459, 1471, 1481, 1554, 1487, 1548, 1493, 1544, 1526, 1592, 1531, 1467, 1488, 1553, 1559, 1515, 1499, 1579, 1583, 1597, 1601, 1550, 1599, 1613, 1619, 1691, 1627, 1664, 1657, 1663, 1667, 1669, 1693, 1775, 1779, 1790, 1724, 1723, 1733, 1808, 1664, 1779, 1759, 1777, 1704, 1724, 1789, 1801, 1811, 1823, 1746, 1847, 1861, 1867, 1946, 1907, 1877, 1950, 1889, 1928, 1955, 1913, 1931, 1933, 1949, 1878, 2054, 1979, 1987, 1993, 1997, 1999, 1979, 2016, 2010, 1940, 1944, 1955, 2053, 2063, 1979, 2081, 2142, 2087, 2089, 2060, 2111, 2067, 2129, 2131, 2160, 2141, 2082, 2153, 2186, 2100, 2292, 2207, 2213, 2221, 2219, 2239, 2243, 2251, 2210, 2204, 2273, 2186, 2287, 2384, 2390, 2309, 2276, 2342, 2339, 2258, 2384, 2351, 2270, 2371, 2474, 2351, 2383, 2389, 2393, 2474, 2411, 2417, 2402, 2437, 2441, 2384, 2459, 2424, 2544, 2477, 2503, 2521, 2474, 2555, 2543, 2549, 2551, 2604, 2483, 2591, 2593, 2609, 2617, 2699, 2714, 2647, 2657, 2659, 2672, 2643, 2780, 2683, 2600, 2780, 2654, 2714, 2760, 2648, 2713, 2719, 2639, 2699, 2741, 2749, 2732, 2767, 2879, 2789, 2791, 2699, 2801, 2907, 2864, 2833, 2837, 2747, 2851, 2857, 2936, 2879, 2780, 2879, 2903, 2978, 2917, 3035, 2939, 2879, 3050, 2912, 2969, 3068, 2999, 3006, 3011, 2934, 2984, 3024, 3011, 3049, 2996, 3050, 3079, 3194, 2984, 3109, 3119, 3121, 3137, 3163, 3167, 3068, 3181, 3187, 3299, 3203, 3209, 3330, 3116, 3229, 3251, 3253, 3299, 3315, 3374, 3299, 3266, 3307, 3313, 3319, 3299, 3329, 3446, 3343, 3260, 3440, 3361, 3374, 3373, 3398, 3491, 3407, 3524, 3519, 3449, 3414, 3461, 3347, 3467, 3374, 3374, 3563, 3511, 3517, 3527, 3644, 3533, 3539, 3541, 3594, 3440, 3559, 3571]
true

161001

Ruby


p を法とする楕円曲線上の点の数(2)

y^2 + y = x^3 - x^2,
y^2 + y = x^3 - x^2 - 10x - 20,
y^2 + y = x^3 - x^2 - 7820x - 263580

これらについて、p を法とする楕円曲線上の点の数を求め、
それぞれが一致することを確認してみた。

require 'prime'

def A(a3, a2, a4, a6, n)
  ary = []
  Prime.take(n).each{|p|
    a = Array.new(p, 0)
    (0..p - 1).each{|i| a[(i * i + a3 * i) % p] += 1}
    ary << (0..p - 1).inject(0){|s, i| s + a[(i * i * i + a2 * i * i + a4 * i + a6) % p]}
  }
  ary
end

n = 500
p ary = A(1, -1, 0, 0, n)
p ary == A(1, -1,   -10,     -20, n)
p ary == A(1, -1, -7820, -263580, n)

出力結果
[4, 4, 4, 9, 10, 9, 19, 19, 24, 29, 24, 34, 49, 49, 39, 59, 54, 49, 74, 74, 69, 89, 89, 74, 104, 99, 119, 89, 99, 104, 119, 149, 144, 129, 159, 149, 164, 159, 179, 179, 194, 174, 174, 189, 199, 199, 199, 204, 209, 214, 209, 269, 249, 274, 259, 249, 259, 299, 279, 299, 279, 269, 299, 299, 314, 304, 324, 359, 319, 319, 374, 379, 384, 399, 384, 384, 404, 399, 399, 439, 399, 399, 449, 444, 399, 454, 414, 469, 449, 474, 494, 459, 464, 499, 479, 529, 494, 524, 539, 549, 539, 559, 559, 569, 599, 544, 559, 549, 559, 599, 629, 629, 599, 644, 624, 674, 614, 654, 694, 649, 624, 659, 719, 699, 674, 699, 734, 704, 724, 769, 689, 739, 774, 779, 749, 749, 779, 819, 744, 809, 849, 799, 784, 879, 804, 844, 839, 849, 874, 839, 889, 924, 879, 909, 919, 899, 909, 959, 929, 899, 974, 919, 999, 924, 1004, 944, 999, 959, 1019, 974, 1029, 999, 999, 1049, 1034, 1104, 1049, 1074, 1019, 1089, 1079, 1149, 1144, 1139, 1154, 1139, 1069, 1099, 1079, 1149, 1184, 1129, 1174, 1199, 1199, 1214, 1199, 1254, 1259, 1209, 1169, 1249, 1219, 1209, 1284, 1324, 1294, 1319, 1289, 1299, 1249, 1274, 1264, 1279, 1349, 1274, 1259, 1349, 1439, 1334, 1449, 1339, 1424, 1394, 1439, 1499, 1379, 1439, 1419, 1399, 1524, 1479, 1449, 1449, 1434, 1429, 1504, 1529, 1444, 1474, 1564, 1499, 1579, 1564, 1609, 1619, 1619, 1599, 1609, 1549, 1629, 1599, 1574, 1619, 1619, 1639, 1599, 1549, 1604, 1659, 1659, 1619, 1619, 1699, 1739, 1659, 1754, 1724, 1769, 1739, 1724, 1804, 1719, 1799, 1769, 1724, 1844, 1779, 1749, 1799, 1879, 1874, 1899, 1799, 1839, 1874, 1879, 1859, 1914, 1819, 1824, 1959, 1949, 1949, 1879, 1989, 1974, 1894, 1949, 2009, 2059, 2069, 2019, 1999, 2024, 2034, 1964, 1984, 1979, 1969, 2039, 1999, 2099, 1994, 2039, 2099, 2064, 2149, 2199, 2109, 2199, 2064, 2199, 2234, 2179, 2174, 2224, 2204, 2159, 2209, 2199, 2159, 2309, 2299, 2299, 2174, 2244, 2269, 2274, 2249, 2264, 2354, 2249, 2324, 2274, 2329, 2274, 2384, 2399, 2414, 2399, 2374, 2399, 2419, 2439, 2339, 2474, 2349, 2439, 2454, 2519, 2399, 2444, 2509, 2464, 2484, 2429, 2489, 2449, 2474, 2539, 2509, 2569, 2649, 2544, 2559, 2649, 2579, 2639, 2599, 2599, 2594, 2609, 2619, 2619, 2624, 2599, 2684, 2699, 2664, 2684, 2734, 2754, 2724, 2624, 2769, 2789, 2699, 2799, 2799, 2699, 2704, 2719, 2819, 2809, 2749, 2839, 2749, 2759, 2844, 2839, 2899, 2839, 2849, 2939, 2924, 2919, 2944, 2859, 2849, 2934, 2829, 2999, 2989, 3039, 2954, 3044, 2899, 3024, 3079, 2974, 2949, 2934, 2984, 3024, 2999, 3089, 3024, 3054, 3099, 3054, 3064, 3029, 3209, 3099, 3129, 3189, 3149, 3124, 3149, 3189, 3199, 3209, 3219, 3194, 3324, 3159, 3299, 3179, 3199, 3319, 3274, 3199, 3374, 3209, 3309, 3319, 3399, 3429, 3374, 3299, 3364, 3404, 3449, 3474, 3369, 3374, 3299, 3389, 3404, 3499, 3409, 3514, 3499, 3559, 3429, 3554, 3474, 3399, 3499, 3539, 3509, 3564, 3509, 3519, 3499, 3494, 3584, 3559, 3599]
true
true