2015年12月31日木曜日

151231(7)

Ruby


Numbers that are not the sum of distinct pentagonal numbers

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

def A121405()
  # 177以上の自然数は異なる五角数の和で表されることが証明できているものとする
  ary = (1..11).map{|i| i * (3 * i - 1) / 2}
  a_ary = []
  (1..ary.size).each{|i|
    ary.combination(i){|c|
      a_ary << c.inject(:+)
    }
  }
  (1..176).to_a - a_ary.uniq
end
ary = A121405()

# OEIS A121405のデータ
ary0 =
[2,3,4,7,8,9,10,11,14,15,16,19,20,21,24,25,26,29,
 30,31,32,33,37,38,42,43,44,45,46,49,50,54,55,59,
 60,61,65,66,67,72,77,80,81,84,89,94,95,96,100,101,
 102,107,112,116,124,136,137,141,142,147,159]
# 一致の確認
p ary == ary0

151231(6)

Ruby


Numbers that are not the sum of distinct squares

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

def A001422()
  # 145以上の自然数は異なる四角数の和で表されることが証明できているものとする
  ary = (1..12).map{|i| i * i}
  a_ary = []
  (1..ary.size).each{|i|
    ary.combination(i){|c|
      a_ary << c.inject(:+)
    }
  }
  (1..144).to_a - a_ary.uniq
end
ary = A001422()

# OEIS A001422のデータ
ary0 =
[2,3,6,7,8,11,12,15,18,19,22,23,24,27,28,31,32,33,
 43,44,47,48,60,67,72,76,92,96,108,112,128]
# 一致の確認
p ary == ary0

151231(5)

Ruby


Numbers that are not the sum of distinct triangular numbers

数学史上最も有名な「Eureka」は
ガウスによる
"ΕΥΡΗΚΑ! num = Δ + Δ + Δ"
だと思う。
「全ての自然数は高々三個の三角数の和に表される」
という三角数定理を発見した時に日記に書かれたものである。

残念ながら、異なる三角数の和という条件に変えると
表せない自然数がある。
オンライン整数列大辞典の
A053614(http://oeis.org/A053614/list)
と比較し、答え合わせしてみる。

def A053614()
  # 37以上の自然数は異なる三角数の和で表されることが証明できているものとする
  ary = [1, 3, 6, 10, 15, 21, 28, 36]
  a_ary = []
  (1..ary.size).each{|i|
    ary.combination(i){|c|
      a_ary << c.inject(:+)
    }
  }
  (1..36).to_a - a_ary.uniq
end
ary = A053614()

# OEIS A053614のデータ
ary0 =
[2,5,8,12,23,33]
# 一致の確認
p ary == ary0

151231(4)

12桁の数字

明日から始まるマイナンバー制度にちなんで、
調べてみると面白いかもしれない12桁の数字を列挙してみた。

100895598169
107928278317
137468691328 完全数
145926144000
158753389900
252097800623
448345497600
460815505920
495766656000
608981813029
619737131179
637832238736

151231(3)

Ruby


p(n^4 | 和因子は四乗数)

151109(4)分でp(n | 和因子は四乗数) を求めたが、
そのn^4 番目について求めてみた。
オンライン整数列大辞典の
A259793(http://oeis.org/A259793/list)
と比較し、答え合わせしてみる。

def A259793(n)
  return [1] if n == 0
  ary = (1..n).map{|i| i * i * i * i}
  m = ary[-1]
  ps = Array.new(m + 1){0}
  ps[0] = 1
  a_ary = [1]
  ary.each{|num|
    (num..m).each{|i|
      ps[i] += ps[i - num]
    }
    a_ary << ps[num]
  }
  a_ary
end
ary = A259793(23)

# OEIS A259793のデータ
ary0 =
[1,1,2,7,36,253,1886,14800,118238,955639,7750456,
 62777522,506272363,4056634991,32252971687,
 254209569990,1985108901344,15352968310930,
 117579612410477,891596419221856,6694250497509934,
 49768995849050468,366423320400440927,
 2671969175372760210]
# 一致の確認
p ary == ary0

151231(2)

Ruby


p(n^3 | 和因子は立方数)

151109(3)分でp(n | 和因子は立方数) を求めたが、
そのn^3 番目について求めてみた。
オンライン整数列大辞典の
A259792(http://oeis.org/A259792/list)
と比較し、答え合わせしてみる。

def A259792(n)
  return [1] if n == 0
  ary = (1..n).map{|i| i * i * i}
  m = ary[-1]
  ps = Array.new(m + 1){0}
  ps[0] = 1
  a_ary = [1]
  ary.each{|num|
    (num..m).each{|i|
      ps[i] += ps[i - num]
    }
    a_ary << ps[num]
  }
  a_ary
end
ary = A259792(26)

# OEIS A259792のデータ
ary0 =
[1,1,2,5,17,62,258,1050,4365,18012,73945,301073,
 1214876,4852899,19187598,75070201,290659230,
 1113785613,4224773811,15866483556,59011553910,
 217410395916,793635925091,2871246090593,
 10297627606547,36620869115355,129166280330900]
# 一致の確認
p ary == ary0

151231

Ruby


p(n^2 | 和因子は平方数)

151109(2)分でp(n | 和因子は平方数) を求めたが、
そのn^2 番目について求めてみた。
オンライン整数列大辞典の
A037444(http://oeis.org/A037444/list)
と比較し、答え合わせしてみる。

def A037444(n)
  return [1] if n == 0
  ary = (1..n).map{|i| i * i}
  m = ary[-1]
  ps = Array.new(m + 1){0}
  ps[0] = 1
  a_ary = [1]
  ary.each{|num|
    (num..m).each{|i|
      ps[i] += ps[i - num]
    }
    a_ary << ps[num]
  }
  a_ary
end
ary = A037444(33)

# OEIS A037444のデータ
ary0 =
[1,1,2,4,8,19,43,98,220,504,1116,2468,5368,11592,
 24694,52170,108963,225644,462865,941528,1899244,
 3801227,7550473,14889455,29159061,56722410,
 109637563,210605770,402165159,763549779,
 1441686280,2707535748,5058654069,9404116777]
# 一致の確認
p ary == ary0

2015年12月30日水曜日

151230(4)

Ruby


p(pn | 和因子は素数)(2)

もう少し調べてみた。

require 'prime'

def A056768(n)
  ary = Prime.each.take(n)
  m = ary[-1]
  ps = Array.new(m + 1){0}
  ps[0] = 1
  a_ary = []
  ary.each{|num|
    (num..m).each{|i|
      ps[i] += ps[i - num]
    }
    a_ary << ps[num]
  }
  a_ary
end

p A056768(10 ** 3)

出力結果
[1, 1, 2, 3, 6, 9, 17, 23, 40, 87, 111, 219, 336, 413, 614, 1083, 1850, 2198, 3630, 5007, 5861, 9282, 12488, 19232, 33439, 43709, 49871, 64671, 73506, 94625, 221265, 279516, 394170, 441250, 766262, 853692, 1175344, 1608014, 1975108, 2675925, 3605666, 3977861, 6447003, 7089299, 8559069, 9397474, 16298212, 27810910, 33121140, 36123177, 42917077, 55416136, 60299078, 91477898, 116975172, 149128391, 189566161, 205220288, 259894960, 303759545, 328249663, 481628967, 814393691, 944043865, 1016030162, 1176012119, 1947093861, 2408365961, 3417355260, 3662709662, 4204869720, 5164194494, 6772892496, 8283364528, 10113278821, 11541858454, 14052532822, 18223771491, 20731198708, 26773685630, 36723296266, 39100061431, 53373949919, 56775073739, 68272721754, 77146303903, 92563166927, 117776850169, 132740357102, 140891231740, 158659773825, 225844849410, 285034672876, 319968768174, 402599630302, 451268034861, 535034179285, 749695337946, 792729981581, 1303426263832, 1535372736248, 2012955556495, 2365170119166, 2776455046698, 2928278002633, 3433343526298, 4467237769489, 5225526104413, 6107331049325, 6431971891087, 7508991694989, 8759161064079, 9701844024362, 10209209398535, 13836238489109, 17783239931613, 18693876777058, 20652263629127, 23966295724829, 27791703929926, 29193296710728, 39153077902249, 43150687924574, 49896404240745, 60494419065449, 76832052552686, 92903223548632, 117608544918460, 141844925043019, 163128057231579, 187489152292764, 205649453322277, 247219168888925, 283626678461325, 310729228398457, 372663112619435, 407959884032354, 558874054265503, 698477916532171, 910956412837564, 951988626546960, 1185557675132166, 1238527221791851, 1351439869617259, 1411579074734150, 1753396986042209, 2369806010824137, 2581547949682147, 2694193383616078, 2933972637854446, 3947542528078787, 4294796706216035, 4479368928403790, 4871899433253987, 7392413764411863, 8030528672143249, 9471195582169338, 11628085044316632, 13690469846901122, 14850830190435401, 16772485454952436, 18934918156699593, 25087526755677506, 27176568418025575, 30630565726175256, 34509857434776495, 40432337968115894, 45511514714330818, 57597910454535289, 62280995357650155, 70007264038810522, 72784069275096707, 88355826394597646, 91837886623779865, 103104286267257595, 124935864719283118, 129812800064839445, 157113596719129868, 163208294547453412, 182905549256083259, 256912718825546228, 276946878900260183, 287526347154234533, 309878675273437483, 346611270688222995, 387570439965886867, 449580532123855510, 502326766348751200, 561081574473616669, 839458597850891511, 870594304789945850, 1043942571780249325, 1206427637231377875, 1444462222957797105, 1608633518307562596, 1790936737741096592, 2065605261333147920, 2556114375393889667, 2743559277875266408, 3050092706056105151, 3389921684175802806, 3511194647570868653, 3900948304240261303, 4811071424184852623, 5724972179078718955, 7814759060245095844, 8088491271673468291, 8664298829484111627, 9603683499028857950, 9938349106122198071, 11012063425663871091, 11789887460983638055, 12198645782332182755, 13058059849547477804, 16006144119508603353, 16556897716436811326, 18322448578663793393, 32383968600600381180, 35779187878344536549, 39521006704346562950, 45109273622966508953, 60651980890877498294, 71431629744090325118, 89721530960194922138, 95738595680578199357, 98893142368478670838, 105509705611647245841, 116252438244497454566, 132251459831348508733, 141038192668898949643, 145642862456898767714, 160355645588122742864, 194265492389069992999, 227793197164434920440, 235146954572604467588, 250556881001161102684, 258627524676592460466, 275538003439148311086, 302947119071108951644, 365990750259107339548, 441794732390983238369, 500641552648931832214, 603529709346106878340, 662454648640612630491, 704823888176047019644, 773387019352588148327, 875026492792943782909, 930631357214414276430, 1052397970399173793264, 1118989804460238224065, 1386120791564256070313, 1473275852293974482456, 1614140549728631852353, 1663958864406234851719, 1768147054475832055429, 1936491661945961183988, 1996014674747724151060, 2185522619910006209627, 2541166920146291969358, 3430370599539283771346, 3752034420618682560970, 3982676309884272233918, 4103141183132223565038, 5858172354921371210549, 6214704971062251088725, 6400846255756214371490, 7416505522652333081017, 8844761803785966561785, 9107638339792980504430, 10541055344120628793084, 11844691846357236385700, 12924706964495742328427, 14100907882334725569137, 15381661444600734311825, 19945927966984203296840, 21743691528094513815183, 23029328991622454603149, 23699758557473918760915, 28142420656787765863094, 32459127750804219949600, 38500169210442061116333, 43125365946544017153135, 54065939351245774856650, 65835898056875284469959, 71616878971230115206530, 75744027485349260754732, 77894053757044298189653, 82374920649529391702640, 84709052402681780423983, 97386549868794142163293, 115067494460763748330991, 125050776986099018463322, 135880916059527429785006, 174183753788108939044179, 179042914336646209504402, 223003868509370155046290, 229193278760668623186508, 309422456002808368483857, 335710324263534951764222, 374189241217429298459120, 405852921717525728099529, 428405367899651523017847, 440137567713214396696431, 464554212058210988870372, 517435441079212758430354, 560924834241311113754997, 641494968777660286224594, 658919289686277422527738, 753240782790933961219107, 907855501439934614100783, 1036929948742652811601995, 1122835437722851256043746, 1316092952335548134554393, 1351327522875081915540241, 1424592997910532607160394, 1462671998826231502073216, 1668547262788903150820846, 1953320111881835616072008, 2005204553127688950792911, 2471899724143106744145046, 2537252897428161463940840, 2743644672262816490242629, 2890292799264937426228050, 2966471801695475567808014, 3377897204095054171414788, 3746873466573162544292998, 4727592323876901141431847, 6435256854804959213264877, 6773446246774407244492952, 7313653419119444866716290, 8100112436888256023053363, 9929897932149834550332444, 10185381703578080954989833, 10715842243273424897201025, 11859334899363943668117308, 14516906396629985166934640, 14887682365199772849188171, 15657319313529891771891096, 17315512496953841909637194, 18671068716633656417940922, 20130584725261641781993807, 21165184597516339077897601, 24592111559394001602885676, 25213910751110477430632485, 33158403484783586200660031, 35721492303603810020037584, 36618305146133709968845080, 39443389107849235617439197, 41444475898135335954691144, 44634233602926066323198504, 53043479141755495401038893, 57106530731934992638153517, 59983326732478012296984154, 61474588364306660626611853, 66170090498168346356394745, 69494148487002163171268943, 74789699989373389516869293, 86596263204646792171140340, 93167253052472330738457172, 100226974788559044698102924, 118805213850491650140182082, 124707735766086651063506405, 134105044681770526606146252, 155032485475776069487450133, 170732051286768757821508676, 183521059620495284030755152, 192564772579090804554868653, 262980395533249254608665805, 325970192609875358593643922, 367138294937353836338990723, 403711709703684277580069014, 423316992387261906262227507, 454489927186081838705498787, 465373530494010246026928758, 499583037168557671432159904, 647482911160138126218911307, 745483105586425787895375525, 763175469344140790050647049, 920373169019214049725410278, 1010490174430343652675899423, 1058743849593432570202962998, 1217493699500233984595506618, 1432404198561593879322741673, 1608307952244733062107873354, 1645953580829831668047038786, 1723860100206522701842692812, 1890696275229588843100917140, 2026136740552969627027614976, 2171096686401306985722670166, 2273347632504625742319662530, 2326232573489425196124682388, 2435653994869249727130687472, 2609330547814024404252882502, 2859944595956583886233585721, 2993973122452987710186691136, 3063282543776863253421186538, 3280806881885559785686342453, 3677540001285047592808269660, 3762364788007798453850589455, 4216182164169317274982009839, 4617592328706866274475600455, 4832148564252820253931400359, 5663101333474635851223880531, 6341072643114867664821876869, 7260493316285880075950681401, 7425972238539326430844020287, 7944966131957293100284848863, 8310596699601472518554899488, 8499563043530226289777141576, 10171284908432978696413191271, 11896263547983531043281028351, 12439860375966706055311736180, 13301329238219080171585587082, 14541725127034887366502551262, 15545971441873131027733993694, 16253021304896072419466958754, 19846141935158117793559708346, 21683704522571192964734957069, 24217196629310785696787086032, 25874674789384378361977650170, 27643540020169756058839014734, 30188067194705263908764198696, 33694367620215090921413465763, 38433231994807276690049769791, 44794160477025288204978996830, 46794418265829533534642728145, 49960513904235667448707937731, 53336985866570198154691178851, 54511574719474513033295156703, 73887444961822206251204602691, 75505637421492175977937077371, 84134087731872179091040725757, 91728659357344242475073033313, 95774811550371101654108089763, 111367194013191006562828687058, 116263425314639780507418221368, 126699457767028354615673514311, 144102842614756644720136094385, 153665646438829734885688167048, 174701406548365697664291343384, 182323803799481765382353340178, 194374516577209851186971240124, 240481236344002650700412209400, 267412034429990625405683457026, 273143742132282169579377263821, 323562753285549027527597884178, 425668695334914362204587658775, 443965808800205515037058298436, 453402308093518644141302087854, 514307978574845319201466269244, 547710348170300169114919088775, 571154853821175753549351677407, 647572449858626320045156188595, 689467775020131894501540228841, 749500253593170677238151954754, 781416027028294374406335903991, 849310985303441762901626859114, 1067390708542050137862531710026, 1089754388480683677034875137667, 1135873640061111091028410998631, 1159648078430381176418328173703, 1312926644448500585179019530081, 1752361885397511298831441448642, 1788782678860478682958907995634, 1902572833180209591695111137107, 2023478545106976256189537318706, 2151937198735469676755914060083, 2242000288459291870174476913702, 2384091629928137211815794550902, 2433396576116186823980556625625, 2751007494258657750648789146062, 2865683982578804567387231177224, 3238686043389594748496198628291, 3305335680537104598685125132408, 3659370008658079273158037838540, 3734529734978806104213839463549, 4393094033395302479095177769807, 4483060349590304373845886445506, 5271156444927965656404896130946, 5600591025067117407421901667415, 6851923396108146691750991039520, 8047777274752788644204112606894, 8720504745670678493523259512638, 9077327738242813500145575420214, 9261090116665240332141708198640, 9639668651859892832989608755462, 9834629704565747517585775042456, 12252753709379890670436020921875, 13270003300661260215332736212237, 14953622589635935551204935758560, 15872596392613953237977696429226, 17529273718705227326631479686178, 17880478485020591248075647619514, 18603797631258478185789570940103, 19743104909611229887452083755537, 20137927932677983639367639485926, 21369627031611939177196024796652, 23589274799862263388019244818766, 24059702156141762328533479756690, 27082532529990757079569931845628, 29884784650084654587354380268537, 30478564682467915701767668767569, 33626183667488846279632848766625, 38576742493494233636044459945031, 40911975058094379934900325772417, 42545560052592882324021517200211, 45117060007755949032804924769404, 48785099543893292217775726000296, 51727361930396413828913592701952, 54844195600896085591308048073426, 64088570324884329443211999689498, 72013276751913787064752063122370, 73424751843116526988577264927867, 76329925000901755838680475609780, 87417769555835029770176329551146, 92641909000044849352942162925676, 96294243943688579841159088459083, 104029479054680761816858069655191, 114563499914471311658827789877611, 123741134784350259694529650409976, 131095971243032001062671684048966, 138880957172229911194149580035059, 171521494110039405214200516111793, 181664656236142107086671568563356, 185175249069409094256196426765660, 203755575500412787688414005450827, 232887661636167900335149700353572, 241939668958956208749283317009209, 256171148854397746415674939718368, 303999007392900270684318920361090, 309827970649575274299520691747351, 340665198790915091150450918455953, 388973249799063588278768804732473, 403974221468834943829734866544741, 411686980067943334206123457340256, 452480444765752930849745846377340, 516355374426053932596125308939738, 536183465889566352811573765226311, 578116508135725377602268151439470, 684638530593353436827485442425779, 710816782371041412683310990822640, 751943485186347259370672922082652, 766166555878954392741978435452975, 795412480078227099251218134538003, 841355078355403987995124445121619, 857242699425440015806681168103192, 958966715198695863889162789268642, 995448679870406675226851195425466, 1199394150785567391666136481878868, 1471443285165580833235538513035785, 1644590248492217272549750347859975, 1675337903234068321063161926557767, 1738542332552281787946941789668368, 1837778648278491787862572075535247, 1942591797508020477070562189245517, 1978821664665779627219716417257545, 2091553442281746365150909320741918, 2561716901051622969568036642872412, 2609299170290039689212358372012906, 2757333162858343239617635399343033, 3193764383778110095143154967977340, 3374410020750891792545061435908484, 3766435777641019087206861682887692, 3836000166064293580612140362846261, 4052379528429449900856181994867165, 4521851452209364687398753662048242, 5232073825013179865408688575010071, 5328244761126770956793968948830849, 5525842830415133411676306543440873, 5835854851922853778208908836975605, 6627440548737824626479286372297652, 6872432616301918471481647618242510, 6998254362767170300897560233803916, 8237783034990241779590875599942866, 10232466349373710558242674430754409, 11197769016349877560537121623940880, 11819468888643639070781163873370473, 12034168310753123724855503826136585, 13166686587281514200295118756694856, 13405485755158877848301029805062310, 14665024559158272819351710171356613, 14930585641599308225999163934730284, 16331165016510489999294219046149567, 17232864758336308510560491310582360, 17544201725946245745211781331362628, 19186004956887298337500979920649317, 19532094006264651224775086116822370, 21357011392814182829162722197726700, 22531591011136882918074697228730100, 24197261475661921020182108749759386, 31596705419454808431066217343287829, 34527880400203009390385554544507886, 35145501649389898188666309015444460, 38400774526136302330615745693757757, 41217493032358508831601732411944516, 43462793714016379003850429103797388, 47475861380419465427718428533011588, 55640663822481815738439288889911979, 58658549770221297506733732351795351, 65186607320620698678054111499414139, 72429868825321673418979147233082420, 73711913703291621837737006134469306, 86304506971485424860637810057384255, 90956107614674412275919353615668673, 94193624369975420003979506204015320, 99264067273546782252455374379256567, 104603440945368488397015399770656836, 122379340987544190523097794333430048, 124529570105483577987078946592929051, 135852270117046323443730068612767934, 153427198189699256045193209631763897, 161628824285516885838764410222763474, 167335226640489775879180156269856335, 170262473374661060212753882473171482, 176269279298272056085729822284277926, 216955755270930974118401791422106637, 220737285009434467323774204543344993, 244830328699494262558512370929089427, 257831427338292761613421901190829093, 295923348068769711143851725731486708, 316999330749177682938371164312922576, 333771396619488386805730277380858767, 351418005784402307102563056568565280, 410065988986125685949846957144126273, 470236913267335874584262275721917120, 478345556299570456075643255944056787, 494978777112976475245415497542337190, 521003696146939642244036805122081449, 529975033148612705624428798472806890, 557813266768523391042884103565958328, 587092734120938433404895488028070326, 639295996574883852582963854660849277, 672788413405582841989507215453133571, 745049665859267198202476389645828398, 824955253246478937910758795680803483, 960911217612446812426096316908903246, 977318710794373120102606550135842245, 1028217323267793834190563806941691592, 1063593334564070061642710300029005245, 1238227266565976237176300851908951910, 1324649748617279068523579042312777257, 1621223538619682955174830888179837968, 1676653271229088622267071182444066000, 1705065057529111870204294715618334699, 1763320979780890742052265249740593283, 1854405059402291760236275514778185541, 1885785868272323047579333250912716096, 2085376192471591916369773443556843641, 2156429501732584982947390866554595925, 2424440939480860353858135052007344099, 3114319850726550270519670336037202678, 3384797256055198325905756071955551711, 3558073878659401535382050639495509299, 3931299375408953680361939187369030866, 4415750201544873240390366657328414862, 4640981405981120331431461248379761823, 5041814322047341712654973027634326293, 5568097687053786699878255229980535680, 5660932364918291243397121474441835714, 5851206984109512753078873443228514516, 6148509616491591729783047253059655693, 6568209189375572751365764818234487473, 6901417399228844452901357582498279002, 7494208431749097395943763429925464697, 7618659471996220875431300976058820417, 7873710818232432929426843956744773621, 8834529751800054055076100379322064281, 9280905702272323565508807711489595982, 9749521647978835799639411804879128879, 10074825257740182508757033925129852106, 10582961997749577711971536947988614922, 10757897035589231787556907743814264028, 11676292714400617640458282689720785083, 11869047557694857644633586607737750728, 13528440474294752732441362156580797886, 14921322251556387497895214168001720788, 15927581701811764797610116154541600809, 18443002153951836490781366761589659857, 19053135382802130414041409061410539481, 20005866885409279937122056478059030988, 22054565643483851576655908865150515662, 22415586068488684031536590370841945636, 23534005805749884916736615280545495275, 24707461000640031276983396336506855145, 25938622550050779865897350305145779373, 32532981122759031155327010069259194311, 34148117974944736926553302844127450687, 38230957994351139802280350814013498064, 39483509109952676091633229764410383607, 42111355930539432749926898402167493408, 45639992691714524899614082498167986395, 48671675633164330133627520976722773361, 53595536780502107710521136414703359360, 61916870840397379892271242108352364123, 63932551395655196660324797274928404066, 64964542871240952951663462919342956601, 67078100539272941751017380047340557183, 81261726573295580278260531042574117355, 89425475116000049159597347459244356441, 93805776429204714499187056771637155715, 95312422362956301153536396206255542746, 108257430547534245585410516453490727952, 113546796317430795386920307302603897264, 119091104292446261279640907980408257682, 133088424068420739361628903868281219585, 144068880950196835799406785044999203560, 160958219817549771136740266313306099714, 166132925481029690953523320674093309655, 210546200181975075498284143324632296601, 220743697797973398702162225850787016781, 231428473666717750510724242982076208654, 242623499405579574486757886815841290366, 258385633023034521239149523906563309727, 270866669405609998681541494391354027723, 279516114298272360826759537603349991096, 283942523443702659071079060402326701940, 311991854028682501288701478765141366593, 327025218267505678525977866032286484291, 337442486519630106613929829739470049827, 342773296984646223963677259211148543862, 359269614995868985679543620870086067669, 426742313611243528867204115374187020560, 447221229362897983865505584044368427728, 454260825765299681318918770692188549810, 468669834038877859883409885522933317540, 539297358110567925031710322180521775140, 547766003909010443368727634645063339206, 565099121162991731112146541672622166648, 620413578638263759746379669739778797767, 630138591928725971517298993148990982122, 660225745778386426644522925620479376854, 681067364685621260079318931382719993859, 833288848738189970604326836866225650579, 872932327907055976393267934587218343295, 914436934133246338449158199086922869128, 943183048040174632099693352463972726480, 1003378344629319431661359718575380687985, 1083979910351410142397346391502443535953, 1387341781088216707441801363842733124799, 1569062819131316244852817367413802872054, 1593370021952652736334462078046087846581, 1668544756651913562610843406302283759763, 1720596039719116501925016582765842655439, 1747219725400686536366696783030203671333, 1801693408149009307173185495876737379846, 1829555765305897813683375643951316444867, 1975378302246275771954470930403296839890, 2198989605798421597049677245829012443990, 2302310560309490384357371390956539643654, 2373839637719765459465848924791992665025, 2523545336546445172412725296264399918252, 2723844546029742295630775931973578645418, 2851477149956210352894122045708344248804, 3321085405474931127152823036360102694831, 3423789195878907667736134689215577979959, 3476311026457072950896045736916084012343, 3638697477702545819567445043173983933645, 4569980331339178088120257282429977066778, 4710738593182154342324012875761530649359, 5005223884233876014364490774419047118342, 5399006576623261586386812817237323927085, 5649802683965859458537290716206602772064, 5912098181695602016347704697071497369720, 6280616306487713990356343006667608930206, 6571807975775972518424156517862679524530, 7194772449047503664221521796584888826384, 7415117453045814678396303640427948822764, 7758189057130841164192364286372315102676, 7875993825563476887503894923924047590944, 8240111765423088077787422482007080111272, 8492043119952631329537273863558665579467, 8884269687102046110485644358680160828367, 9018946819593713959314090895041850321602, 9723176242605793342493347280485750151983, 9870405666754953932365045280602382246860, 11130287947695020887709769347830443947782, 11642623237793180133609026387497769001905, 13524498035862012560794579975751275336126, 13935446411614600849248097750894712850102, 15243738941695806234950796006826405929961, 16924006807221449880120684445448241774451, 20852245063078537188195651143923883659592, 21804579982220875680312863253943385056605, 25300042690297474561475692585476536925602, 26062851919123692008829863055663479719785, 29786355601418261390826124672130878941913, 31605518633847553728466986291893703309227, 33041512801401422288607419746342349389630, 34034455645596008852354024166105109764670, 35579388156760881115517604034629277127627, 39458813787496082106294013817608536869287, 41246694867458857101619912917731898126455, 43114559699312322772736454217473457540860, 46415074419180917440970385308915912273787, 47104526169735978154163327904819593418649, 50706479594610769196157973964784072837363, 55389424426851457423129822226164561976323, 58746192204825340341990643101484193697387, 63225941821244653699003180397105049287212, 64161577033982938537235922112192553157518, 69048890071410283235507016708477158544555, 73222026474541456334070933674433826908532, 79953147816805059643156401232882557276363, 86026628215821996279638803824722766484283, 102525645255264217954104009192155920859360, 104033985459688542433884645747890853322216, 107116741276181501204746882892179287002510, 113555522940103342497984835569673576900040, 118634172297587504248837452706406336684135, 122143951443489821590711188234472569966511, 129474137118875838566298385583278660540383, 147593902387121565066558596755837292279693, 158720469173160557448420310214498941382232, 165790063902027519818632816976033155064940, 173170620105105239706661212835487910263065, 175702226165669002542402554150158496505978, 183518508223234545801273184714687785475155, 197316050425844050721237551342693539069422, 215231374040288958255567436851335606661573, 218369664484569164192203429646122383366661, 234752216252815009760538674232051963075842, 245158614165441021046410247715596149569939, 256020591662594540085773183727833489775401, 267357845541386791331078821366029166776129, 283249125803967326400522600119813561819884, 295776747208105249221818409907543903438480, 317883750441114372511977643093198940575602, 331923545292731329978219437016027095180939, 336738288226011560943386627559675531073618, 351600440627697525766527818432767112882750, 367110428461555764842535551197753165135277, 383296140918701214232636372852768262975907, 411853465320360272814995020756764055831639, 436204604873529250976013926534719181123430, 518121106011212398951503615531896269439663, 540869909369859319554701922122701070133517, 633049410500159234319054641347293714475347, 642161828538197321412262530086881931370200, 730229562321135411331911775414266574539005, 751365527663847412520452568682336362419730, 795467613986186135586519072890592456515487, 854207149704040092797576238504242586796130, 1057377941064603502301495415587188011858540, 1119186147741863797208745894676423512079927, 1271611746068571859923512434985027217980576, 1308175442504974007209241902026143509745925, 1326844997709609186144319240082308576993807, 1424216110231534335849227143042543995331769, 1485994143169713130113271782064955412283519, 1507169622436100513358081589357455634010903, 1572501766157178889696446669873660305771261, 1617603489566033267406572779547611398663554, 1836902728934800584331608494873297233392254, 1943566884711604213543144820989979149794319, 2115140766542497762031571326575781928025739, 2400939279640853954885375876150032766011400, 2686824352715992387222588691250878549656795, 2802493447317149915644741104470973666782782, 2842132961116411104860877243127854911589919, 3091877149555247217967599926063686420294900, 3224762613595062650751767973943435367707468, 3458893132146316222045843600294700318119210, 3507696875116457454514639314996536086677368, 3762112735469224499319714070107551482554457, 3815142787068590308914785479212306090429575, 3978706111278525619905819632497726411394459, 4266849235633263720552933183026139690770393, 4705195754450287318560447239613620839943999, 4838416869433066528109686108606695876823040, 5719720686879112366994290937491468107259217, 5799952717356730785444962192050908181949286, 6483157367969190963727467017062374303864345, 6573966186104392167547269585338297602991967, 7047214178985774781333795669162439673808581, 7145828244848129163254803638218457584952742, 7659732780866917044084845109524649139763574, 8799612487698000097922751535121632324063738, 9046946386279933437422112726616598367675832, 9173177867243668764677015692751502425815297, 9430886953107341790347254350025215052468838, 9967965244567152305815383345177221775980718, 11134447491653328883743427653008023443511404, 11605831835384539240101230617739900946931966, 12096934416434579364507677796184868539511142, 12265157020459274530490731838725995328688923, 13324162879311815741891362419653271253642102, 14877938269100983129342692554854283307156987, 15720687470734164319143028330885775805539529, 16159587834722906232499365673826253375400568, 16840746971728960141060109412886536276697790, 20696182074601588076724362443059377812776514, 20982216090037500588551720128418820638594549, 22472064937098372545772106166306937922410820, 22782349783161534076428040654170815977815115, 23738842755894382823659097974353190796137229, 24398450991169377923671626965435521699321788, 25421979702469624850009510396870075281007531, 26487937687961918918795571285637769894869381, 27978230152290493139275355774656894487137557, 29150070722557302578936697257146217935640006, 29958122008111565172623383920269754888270095, 32517519378377768335289382559398175210717824, 33877114412375802230040104501850204469029047, 35777685204397955257126951535654675311959636, 38827865036520602866321584437184567535061124, 39900648738041330175745859854346681835210992, 43891334715074944783951347643284042762130097, 47624234642556228780794802024384553816061741, 50973454556186147078503887157084802593102642, 59991585245700239516417724164400268722386685, 62482242975211391801249726267709155936815768, 67774274721196092486796326267189667501550104, 70584102010144269742394919748623696324205770, 71546068309359498411766368502375931813587013, 83022232787690583154254483530003514877079560, 87631790930976558879544955442024323089190806, 98948915880662292956711726744595183744491691, 105848617849702456942475187244286521128110670, 110214583592222874204859999774981705618187183, 121106428779140922124847618534668633028839730, 124409348952489400798974548353912329751137656, 126094053764390545653677415056803465118787574, 131284694920074991727676087753941033458431835, 140409239658390971286986749958343117294109150, 148158023677180686280080573192057986265040958, 154245712940350905008566705929708904538952400, 158440917542308808649950487968252799682343411, 164946144943938677147483526832412232574012431, 201650234650138243872390486971931177301776019, 221437747083136067350526378572641848693951682, 236735575675052679646783114702675266784290434, 239918265616147276245417698966628312450691013, 259922541442460966414595661344701953016659133, 277846006831246715728244173934145906817877690, 281574698274349924547943363233265768826899409, 313240948287326605694550266905636083252772694, 317439007962102525255247811751274793131402865, 357814357276709830928425905675960108312040351, 419643531961175676385811852798501003209887347, 472843645170972582929056119797679955783006241, 492018425196024454232760582262847554768913994, 546992216100044344863503636782738805895263455, 616121927597610738070403624601048529974883353, 641032576074062745388620838593103116263199642, 649555463478090307536595355227989856499092298, 731482524073334213849512007836104159970904776, 751032496757107132279862990105118299028146841, 781330280067948952918261902318387774998156889, 791695730776947776996427142633837661571500947, 845598290358912963686798387827448750860016203, 891320341807811292832038821763851709809521214, 951924195222386561483502744763345025965603249, 990224317931576875848026327882884071086078271, 1030047828690045402746127260732679158837461166, 1085619422701941096511249383838726948254450953, 1114506943637383059986145674364266168406461469, 1159269422827855647610603781996191268938856350, 1174581818754190412676951857942377525135332344, 1254196106562472291671367516105554810997465459, 1270747977138914395315410709566127755608859590, 1374694311737573874563266020621313877204405064, 1411178142472120591920473547738466210963382003, 1467706731056781646814593925337697877078690898, 1526473969122687942117296207463317571555833474, 1546575578288731497911450026702368296798528305, 1672802082646142410860944955650990456262723798, 1717101128883896439298540389204711275216628381, 1881481549798215857475248504497245807569169827, 2115874583358912391309891257679473722795735677, 2171761649280503641557068828083797023809518520, 2258340821083721013130328530563216472158759893, 2572340148388612716491073123619128984482208859, 2640137623168666011178162089577343889125631899, 2781078925955920212824601162196762995083773410, 2891645119519050483377112345172470040888274151, 2967760097638382046033960942542854410052599609, 3125984582311326978467017567970452511129731842, 3208197370099607506072312219614410602013843668, 3513143788359594570286706097122134774991615149, 3652453370298331204840119567719909154120064966, 3748347891727581149211697179070503718887996393, 4104008350106062185286394992003687062361552526, 4435287404081388119745746312304154121677941512, 4551487067234804216875305240836285320465954981, 4610711054615074917788291463768639281231925373, 5596192943239036770565700834388738577811714939, 5742434002467003227247996985523481269978988123, 6702711526597100237923426674604929619239977436, 6966612534419920201633457652910564585203678337, 7240787489246704404484179102534232802344634039, 7821556249303810399303553897478186044299642052, 8448365777484949989063435049238929003338002393, 9242662044729385946593917387062268221787181964, 9605285017165642601594239804168270794058961391, 9854816357130646594476222522010058717956415338, 9981976052902714084699723666265991958955453139, 10241184670949452066691168580453811911750479076, 11492481281593786650250701827934063835418068763, 11942298125107601869077030544029586951558893848, 12894826873899116054913126843433822754488845336]

151230(3)

Ruby


p(pn | 和因子は素数)(1)

pn をn番目の素数とし、p(pn | 和因子は素数) を求めてみた。
オンライン整数列大辞典の
A056768(http://oeis.org/A056768/list)
と比較し、答え合わせしてみる。

require 'prime'

def A056768(n)
  ary = Prime.each.take(n)
  m = ary[-1]
  ps = Array.new(m + 1){0}
  ps[0] = 1
  a_ary = []
  ary.each{|num|
    (num..m).each{|i|
      ps[i] += ps[i - num]
    }
    a_ary << ps[num]
  }
  a_ary
end
ary = A056768(40)

# OEIS A056768のデータ
ary0 =
[1,1,2,3,6,9,17,23,40,87,111,219,336,413,614,1083,
 1850,2198,3630,5007,5861,9282,12488,19232,33439,
 43709,49871,64671,73506,94625,221265,279516,
 394170,441250,766262,853692,1175344,1608014,
 1975108,2675925]
# 一致の確認
p ary == ary0

151230(2)

Ruby


p(Fn | 和因子はフィボナッチ数)(2)

もう少し調べてみた。

def A000045(n)
  a, b = 0, 1
  ary = [a]
  i = 0
  while i < n
    ary << b
    a, b = b, b + a
    i += 1
  end
  ary
end

def A098641(n)
  return [1] if n == 1
  ary = A000045(n)[2..-1]
  m = ary[-1]
  ps = Array.new(m + 1){0}
  ps[0] = 1
  a_ary = [1]
  ary.each{|num|
    (num..m).each{|i|
      ps[i] += ps[i - num]
    }
    a_ary << ps[num]
  }
  a_ary
end

p A098641(37)

出力結果
[1, 1, 2, 3, 6, 14, 41, 157, 803, 5564, 53384, 718844, 13783708, 380676448, 15298907733, 902438020514, 78720750045598, 10220860796171917, 1986422867300209784, 580763241873718042562, 256553744608217295298827, 171912553856721407543178940, 175350753369071026461010505478, 273116453992415679691255706885970, 651429987008173036810465648509948195, 2385582065397945424930256464926036188632, 13444881083557072339231220089112692845967023, 116868939532344964399575983214201364849810071550, 1569960751357060463075457330723559333110008524516529, 32653305894128813337034041132850627847635384420052701769, 1053308881973023044565669098421410192842748999937332585454870, 52779208124598957859072936537155351471874889939313366202920028446, 4114234328148606845952939486878218676775449777211179757739825392011244, 499610569974357445625866327196542398434661011535221909478584586592575661097, 94634415263809625297241947308059635816480834279095163571912726152113856158593855, 27993975858090338912752085677914311721784389175850180898261294283377276313636087192303, 12946995750332965165480631942881728877721525211953330788687487937642928519967940203995914105]

151230

Ruby


p(Fn | 和因子はフィボナッチ数)(1)

オンライン整数列大辞典の
A000045(http://oeis.org/A000045/list)、
A098641(http://oeis.org/A098641/list)
と比較し、答え合わせしてみる。

def A000045(n)
  a, b = 0, 1
  ary = [a]
  i = 0
  while i < n
    ary << b
    a, b = b, b + a
    i += 1
  end
  ary
end

def A098641(n)
  return [1] if n == 1
  ary = A000045(n)[2..-1]
  m = ary[-1]
  ps = Array.new(m + 1){0}
  ps[0] = 1
  a_ary = [1]
  ary.each{|num|
    (num..m).each{|i|
      ps[i] += ps[i - num]
    }
    a_ary << ps[num]
  }
  a_ary
end

ary = A000045(38)
# OEIS A000045のデータ
ary0 =
[0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
 1597,2584,4181,6765,10946,17711,28657,46368,75025,
 121393,196418,317811,514229,832040,1346269,
 2178309,3524578,5702887,9227465,14930352,24157817,
 39088169]
# 一致の確認
p ary == ary0

ary = A098641(21)
# OEIS A098641のデータ
ary0 =
[1,1,2,3,6,14,41,157,803,5564,53384,718844,
 13783708,380676448,15298907733,902438020514,
 78720750045598,10220860796171917,
 1986422867300209784,580763241873718042562,
 256553744608217295298827]
# 一致の確認
p ary == ary0

2015年12月28日月曜日

151228(2)

Ruby


p(n | 和因子はフィボナッチ数)(2)

A003107(10 ** i) を求めてみた。

# n以下のフィボナッチ数
def f_ary(n)
  a, b = 0, 1
  ary = [a]
  while b <= n
    ary << b
    a, b = b, b + a
  end
  ary
end

def A003107(n)
  ary = f_ary(n)[2..-1]
  ps = Array.new(n + 1){0}
  ps[0] = 1
  ary.each{|num|
    (num..n).each{|i|
      ps[i] += ps[i - num]
    }
  }
  ps
end

N = 7
ary = A003107(10 ** N)
(0..N).each{|i| p ary[10 ** i]}

出力結果
1
22
97075
1013742289697
79170701411977377424244
83067459628701292838054798041549436000
1637462026740340833729644375485392457947071538846888312979
752766222145261316633107509392508342873807143453511899117237733049220345746591279

151228

Ruby


p(n | 和因子はフィボナッチ数)(1)

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

# n以下のフィボナッチ数
def f_ary(n)
  a, b = 0, 1
  ary = [a]
  while b <= n
    ary << b
    a, b = b, b + a
  end
  ary
end

def A003107(n)
  ary = f_ary(n)[2..-1]
  ps = Array.new(n + 1){0}
  ps[0] = 1
  ary.each{|num|
    (num..n).each{|i|
      ps[i] += ps[i - num]
    }
  }
  ps
end
ary = A003107(53)

# OEIS A003107のデータ
ary0 =
[1,1,2,3,4,6,8,10,14,17,22,27,33,41,49,59,71,83,
 99,115,134,157,180,208,239,272,312,353,400,453,
 509,573,642,717,803,892,993,1102,1219,1350,1489,
 1640,1808,1983,2178,2386,2609,2854,3113,3393,3697,
 4017,4367,4737]
# 一致の確認
p ary == ary0

2015年12月27日日曜日

151227(9)

Ruby


Stern's diatomic series に現れるフィボナッチ数(2)

もう少し調べてみた。

def A002487(n)
  a, b = 0, 1
  ary = [a, b]
  i = 1
  while i < n
    a, b = b, b + a - 2 * (a % b)
    ary << b
    i += 1
  end
  ary[0..n]
end

# フィボナッチ数列は上とよく似ている
def fib_ary(n)
  a, b = 0, 1
  ary = [a, b]
  while b < n
    a, b = b, b + a
    ary << b
  end
  ary
end

N = 22
ary = A002487(2 ** N)
f_ary = fib_ary(ary.max)

p ary.select{|i| f_ary.include?(i)}

出力結果
[0, 1, 1, 2, 1, 3, 2, 3, 1, 3, 5, 2, 5, 3, 1, 5, 3, 8, 5, 2, 5, 8, 3, 5, 1, 5, 3, 8, 13, 5, 2, 5, 13, 8, 3, 5, 1, 5, 13, 13, 3, 8, 21, 13, 5, 2, 5, 13, 21, 8, 3, 13, 13, 5, 1, 8, 13, 5, 13, 13, 3, 8, 21, 34, 13, 5, 13, 2, 13, 5, 13, 34, 21, 8, 3, 13, 13, 5, 13, 8, 1, 8, 13, 21, 5, 13, 21, 34, 13, 3, 8, 21, 55, 34, 13, 5, 34, 13, 2, 13, 34, 5, 13, 34, 55, 21, 8, 3, 13, 34, 21, 13, 5, 21, 13, 8, 1, 8, 13, 21, 5, 55, 13, 21, 34, 55, 13, 3, 8, 21, 55, 89, 34, 13, 5, 55, 55, 34, 13, 2, 13, 34, 55, 55, 5, 13, 34, 89, 55, 21, 8, 3, 13, 55, 34, 21, 13, 55, 5, 21, 13, 8, 1, 8, 34, 13, 21, 5, 34, 55, 13, 55, 21, 34, 89, 89, 55, 89, 89, 13, 55, 3, 89, 89, 8, 21, 55, 144, 89, 34, 13, 5, 55, 55, 34, 13, 2, 13, 34, 55, 55, 5, 13, 34, 89, 144, 55, 21, 8, 89, 89, 3, 55, 13, 89, 89, 55, 89, 89, 34, 21, 55, 13, 55, 34, 5, 21, 13, 34, 8, 1, 21, 8, 34, 13, 89, 21, 5, 34, 55, 89, 13, 55, 21, 34, 89, 89, 55, 89, 89, 13, 55, 89, 3, 89, 89, 8, 21, 55, 144, 233, 89, 34, 13, 89, 5, 144, 55, 144, 55, 89, 34, 89, 13, 21, 2, 21, 13, 89, 34, 89, 55, 144, 55, 144, 5, 89, 13, 34, 89, 233, 144, 55, 21, 8, 89, 89, 3, 89, 55, 13, 89, 89, 55, 89, 89, 34, 21, 55, 13, 89, 55, 34, 5, 21, 89, 13, 34, 8, 21, 1, 13, 21, 8, 89, 34, 13, 89, 89, 21, 89, 5, 34, 89, 144, 55, 89, 13, 89, 55, 21, 89, 34, 89, 233, 89, 55, 89, 89, 13, 55, 89, 3, 55, 89, 89, 233, 233, 89, 8, 21, 55, 144, 377, 233, 89, 34, 13, 233, 89, 5, 144, 89, 55, 144, 55, 89, 34, 89, 144, 13, 55, 21, 2, 21, 55, 13, 144, 89, 34, 89, 55, 144, 55, 89, 144, 5, 89, 233, 13, 34, 89, 233, 377, 144, 55, 21, 8, 89, 233, 233, 89, 89, 55, 3, 89, 55, 13, 89, 89, 55, 89, 233, 89, 34, 89, 21, 55, 89, 13, 89, 55, 144, 89, 34, 5, 89, 21, 89, 89, 13, 34, 89, 8, 21, 13, 1, 13, 34, 21, 8, 55, 144, 89, 55, 89, 34, 13, 89, 89, 233, 233, 21, 89, 5, 34, 89, 144, 55, 89, 13, 89, 55, 21, 89, 34, 89, 233, 233, 89, 55, 89, 377, 144, 89, 233, 13, 55, 89, 34, 3, 55, 89, 89, 233, 377, 377, 144, 233, 89, 8, 21, 55, 144, 377, 610, 233, 89, 34, 13, 233, 377, 233, 89, 5, 89, 233, 144, 89, 55, 377, 233, 377, 144, 55, 89, 34, 233, 89, 233, 144, 233, 89, 13, 144, 89, 55, 21, 2, 21, 55, 89, 144, 13, 89, 233, 144, 233, 89, 233, 34, 89, 55, 144, 377, 233, 377, 55, 89, 144, 233, 89, 5, 89, 233, 377, 233, 13, 34, 89, 233, 610, 377, 144, 55, 21, 8, 89, 233, 144, 377, 377, 233, 89, 89, 55, 3, 34, 89, 55, 13, 233, 89, 144, 377, 89, 55, 89, 233, 233, 89, 34, 89, 21, 55, 89, 13, 89, 55, 144, 89, 34, 5, 89, 21, 233, 233, 89, 89, 13, 34, 89, 55, 89, 144, 55, 8, 21, 34, 13, 1, 13, 34, 21, 55, 8, 55, 144, 89, 55, 89, 34, 13, 89, 233, 144, 55, 233, 144, 89, 233, 233, 233, 21, 89, 233, 5, 34, 377, 89, 144, 55, 89, 377, 13, 233, 89, 233, 55, 21, 89, 233, 34, 89, 233, 377, 233, 610, 377, 233, 89, 55, 89, 377, 144, 89, 233, 13, 233, 55, 233, 89, 233, 34, 3, 55, 89, 233, 377, 233, 377, 89, 233, 377, 233, 377, 144, 233, 89, 8, 233, 610, 21, 55, 144, 377, 987, 610, 233, 89, 34, 13, 233, 377, 377, 233, 377, 89, 5, 89, 233, 144, 89, 55, 377, 233, 377, 144, 233, 55, 89, 377, 34, 233, 89, 233, 144, 377, 233, 89, 13, 144, 89, 55, 21, 2, 21, 55, 89, 144, 13, 89, 233, 377, 144, 233, 89, 233, 34, 377, 89, 55, 233, 144, 377, 233, 377, 55, 89, 144, 233, 89, 5, 89, 377, 233, 377, 377, 233, 13, 34, 89, 233, 610, 987, 377, 144, 55, 21, 610, 233, 8, 89, 233, 144, 377, 233, 377, 233, 89, 377, 233, 377, 233, 89, 55, 3, 34, 233, 89, 233, 55, 233, 13, 233, 89, 144, 377, 89, 55, 89, 233, 377, 610, 233, 377, 233, 89, 34, 233, 89, 21, 55, 233, 89, 233, 13, 377, 89, 55, 144, 89, 377, 34, 5, 233, 89, 21, 233, 233, 233, 89, 144, 233, 55, 144, 233, 89, 13, 34, 89, 55, 89, 144, 55, 8, 55, 21, 34, 13, 1, 13, 34, 21, 55, 233, 8, 55, 233, 144, 89, 233, 55, 89, 34, 377, 377, 13, 377, 89, 233, 144, 55, 233, 144, 233, 89, 233, 233, 377, 377, 233, 21, 89, 233, 5, 34, 377, 89, 144, 610, 55, 233, 377, 89, 377, 377, 13, 233, 89, 233, 55, 21, 377, 233, 144, 144, 233, 89, 233, 377, 610, 34, 233, 377, 987, 89, 233, 377, 233, 610, 377, 233, 610, 89, 233, 377, 55, 89, 610, 987, 233, 377, 144, 89, 233, 377, 13, 233, 55, 233, 89, 233, 34, 3, 55, 89, 233, 377, 610, 233, 377, 89, 233, 377, 233, 377, 144, 233, 987, 89, 8, 233, 610, 21, 55, 144, 377, 987, 1597, 610, 233, 89, 34, 13, 233, 377, 377, 233, 610, 377, 89, 5, 89, 233, 377, 144, 377, 987, 610, 89, 55, 377, 233, 377, 144, 377, 610, 233, 233, 55, 89, 377, 610, 34, 233, 233, 89, 233, 144, 377, 377, 233, 89, 13, 233, 144, 233, 89, 55, 21, 2, 21, 55, 89, 233, 144, 233, 13, 89, 233, 377, 377, 144, 233, 89, 233, 233, 34, 610, 377, 89, 55, 233, 233, 610, 377, 144, 377, 233, 377, 55, 89, 610, 987, 377, 144, 377, 233, 89, 5, 89, 377, 610, 233, 377, 377, 233, 13, 34, 89, 233, 610, 1597, 987, 377, 144, 55, 21, 610, 233, 8, 89, 987, 233, 144, 377, 233, 377, 233, 89, 377, 233, 610, 377, 233, 89, 55, 3, 34, 233, 89, 233, 55, 233, 13, 377, 233, 89, 144, 377, 233, 987, 610, 89, 55, 377, 233, 89, 610, 233, 377, 610, 233, 377, 233, 89, 987, 377, 233, 34, 610, 377, 233, 89, 233, 144, 144, 233, 377, 21, 55, 233, 89, 233, 13, 377, 377, 89, 377, 233, 55, 610, 144, 89, 377, 34, 5, 233, 89, 21, 233, 377, 377, 233, 233, 89, 233, 144, 233, 55, 144, 233, 89, 377, 13, 377, 377, 34, 89, 55, 233, 89, 144, 233, 55, 8, 233, 55, 21, 34, 13, 1, 55, 13, 89, 34, 21, 233, 55, 233, 8, 55, 233, 377, 144, 89, 377, 233, 55, 233, 89, 34, 377, 610, 377, 610, 13, 377, 89, 233, 144, 233, 55, 233, 144, 233, 89, 233, 377, 233, 377, 377, 233, 21, 377, 89, 233, 5, 34, 233, 377, 610, 89, 144, 987, 610, 55, 233, 377, 610, 89, 377, 377, 987, 13, 233, 610, 89, 233, 377, 55, 21, 377, 233, 144, 55, 144, 233, 89, 233, 377, 610, 34, 377, 987, 233, 377, 987, 89, 233, 377, 233, 1597, 610, 377, 987, 233, 610, 89, 233, 377, 55, 233, 89, 1597, 987, 610, 987, 233, 610, 377, 144, 89, 233, 377, 610, 13, 233, 55, 233, 89, 233, 233, 34, 3, 55, 89, 233, 377, 610, 233, 377, 89, 987, 233, 377, 233, 610, 377, 144, 233, 987, 89, 987, 233, 8, 233, 610, 987, 21, 55, 144, 377, 987, 2584, 1597, 610, 233, 89, 34, 1597, 13, 233, 377, 377, 233, 610, 377, 89, 233, 377, 5, 89, 377, 233, 987, 377, 144, 377, 1597, 987, 610, 89, 55, 377, 233, 377, 144, 377, 610, 233, 89, 233, 377, 987, 55, 89, 377, 610, 34, 233, 377, 233, 610, 987, 89, 233, 377, 144, 987, 377, 610, 377, 233, 89, 13, 233, 144, 233, 377, 89, 55, 21, 2, 21, 55, 89, 377, 233, 144, 233, 13, 89, 233, 377, 610, 377, 987, 144, 377, 233, 89, 987, 610, 233, 377, 233, 34, 610, 377, 89, 55, 987, 377, 233, 89, 233, 610, 377, 144, 377, 233, 377, 55, 89, 610, 987, 1597, 377, 144, 377, 987, 233, 377, 89, 5, 377, 233, 89, 377, 610, 233, 377, 377, 233, 13, 1597, 34, 89, 233, 610, 1597, 2584, 987, 377, 144, 55, 21, 987, 610, 233, 8, 233, 987, 89, 987, 233, 144, 377, 610, 233, 377, 233, 987, 89, 377, 233, 610, 377, 233, 89, 55, 3, 34, 233, 233, 89, 233, 55, 233, 13, 610, 377, 233, 89, 144, 377, 610, 233, 987, 610, 987, 1597, 89, 233, 55, 377, 233, 89, 610, 233, 987, 377, 610, 1597, 233, 377, 233, 89, 987, 377, 233, 987, 377, 34, 610, 377, 233, 89, 233, 144, 55, 144, 233, 377, 21, 55, 377, 233, 89, 610, 233, 13, 987, 377, 377, 89, 610, 377, 233, 55, 610, 987, 144, 89, 610, 377, 233, 34, 5, 233, 89, 377, 21, 233, 377, 377, 233, 377, 233, 89, 233, 144, 233, 55, 233, 144, 233, 89, 377, 13, 610, 377, 610, 377, 34, 89, 233, 55, 233, 377, 89, 144, 377, 233, 55, 8, 233, 55, 233, 21, 34, 89, 13, 55, 1, 55, 13, 89, 34, 233, 21, 89, 233, 55, 89, 377, 233, 144, 377, 8, 55, 233, 610, 377, 144, 377, 89, 377, 233, 55, 233, 89, 34, 377, 610, 377, 610, 13, 233, 377, 987, 89, 233, 144, 377, 233, 55, 233, 144, 987, 987, 233, 377, 987, 89, 233, 377, 377, 233, 377, 377, 233, 21, 377, 89, 233, 5, 377, 34, 233, 987, 377, 610, 1597, 89, 377, 144, 987, 610, 55, 233, 377, 610, 89, 1597, 377, 1597, 233, 610, 1597, 377, 987, 13, 233, 987, 1597, 987, 1597, 610, 89, 233, 377, 55, 21, 377, 233, 144, 55, 144, 377, 610, 233, 89, 377, 987, 233, 377, 610, 34, 377, 987, 233, 610, 377, 987, 89, 233, 1597, 377, 610, 987, 233, 1597, 1597, 610, 377, 987, 233, 610, 987, 89, 1597, 233, 233, 377, 987, 610, 55, 233, 89, 1597, 987, 610, 1597, 987, 233, 610, 377, 144, 377, 89, 233, 1597, 377, 610, 13, 233, 55, 1597, 1597, 377, 233, 987, 89, 610, 233, 377, 233, 34, 3, 233, 55, 377, 89, 987, 233, 377, 610, 233, 377, 1597, 1597, 89, 987, 233, 377, 1597, 233, 610, 1597, 987, 377, 1597, 144, 377, 233, 1597, 987, 89, 987, 233, 8, 377, 233, 987, 610, 1597, 987, 21, 55, 144, 377, 987, 2584, 4181, 1597, 610, 233, 89, 34, 1597, 1597, 13, 233, 377, 610, 377, 233, 610, 1597, 377, 89, 233, 377, 5, 89, 610, 377, 233, 1597, 987, 377, 144, 377, 1597, 987, 610, 89, 55, 1597, 377, 233, 377, 1597, 987, 144, 377, 610, 233, 89, 610, 233, 377, 987, 55, 987, 89, 987, 377, 1597, 610, 34, 987, 233, 377, 233, 610, 987, 987, 89, 233, 987, 377, 144, 987, 377, 377, 987, 610, 377, 233, 89, 13, 233, 144, 233, 377, 89, 233, 55, 377, 21, 2, 21, 377, 55, 233, 89, 377, 233, 144, 233, 13, 89, 233, 377, 610, 987, 377, 377, 987, 144, 377, 987, 233, 89, 987, 987, 610, 233, 377, 233, 987, 34, 610, 1597, 377, 987, 89, 987, 55, 987, 377, 233, 610, 89, 233, 610, 377, 144, 987, 1597, 377, 233, 377, 1597, 55, 89, 610, 987, 1597, 377, 144, 377, 987, 1597, 233, 377, 610, 89, 5, 377, 233, 89, 377, 1597, 610, 233, 377, 610, 377, 233, 13, 1597, 1597, 34, 89, 233, 610, 1597, 4181, 2584, 987, 377, 144, 55, 21, 987, 1597, 610, 987, 233, 377, 8, 233, 987, 89, 987, 1597, 233, 377, 144, 1597, 377, 987, 1597, 610, 233, 1597, 377, 233, 987, 89, 1597, 1597, 377, 233, 610, 377, 233, 987, 89, 377, 55, 233, 3, 34, 233, 377, 233, 610, 89, 987, 233, 377, 1597, 1597, 55, 233, 13, 610, 377, 1597, 233, 89, 377, 144, 377, 610, 233, 987, 1597, 610, 987, 1597, 89, 233, 55, 610, 987, 377, 233, 233, 1597, 89, 987, 610, 233, 987, 377, 610, 1597, 1597, 233, 987, 610, 377, 1597, 233, 89, 987, 377, 610, 233, 987, 377, 34, 610, 377, 233, 987, 377, 89, 233, 610, 377, 144, 55, 144, 233, 377, 21, 55, 377, 233, 89, 610, 1597, 987, 1597, 987, 233, 13, 987, 377, 1597, 610, 233, 1597, 377, 1597, 89, 610, 377, 233, 55, 610, 987, 144, 377, 89, 1597, 610, 377, 987, 233, 34, 377, 5, 233, 89, 377, 21, 233, 377, 377, 233, 377, 377, 233, 89, 987, 377, 233, 987, 987, 144, 233, 55, 233, 377, 144, 233, 89, 987, 377, 233, 13, 610, 377, 610, 377, 34, 89, 233, 55, 233, 377, 89, 377, 144, 377, 610, 233, 55, 8, 377, 144, 233, 377, 89, 55, 233, 89, 21, 233, 34, 89, 13, 55, 1, 55, 13, 89, 34, 89, 377, 233, 21, 89, 233, 377, 55, 89, 377, 233, 610, 377, 144, 377, 89, 8, 55, 987, 233, 610, 377, 144, 377, 89, 377, 987, 233, 55, 233, 89, 34, 377, 610, 377, 610, 13, 233, 1597, 377, 1597, 987, 89, 233, 610, 377, 144, 377, 233, 55, 233, 144, 987, 377, 987, 233, 377, 987, 2584, 1597, 89, 233, 377, 377, 987, 233, 1597, 377, 377, 233, 1597, 21, 377, 89, 233, 5, 377, 34, 233, 1597, 1597, 987, 1597, 377, 1597, 610, 1597, 1597, 2584, 89, 377, 144, 2584, 1597, 987, 1597, 610, 55, 1597, 233, 377, 610, 89, 1597, 377, 1597, 233, 610, 1597, 377, 987, 13, 233, 987, 1597, 987, 1597, 1597, 610, 89, 233, 987, 377, 55, 21, 377, 233, 144, 233, 55, 144, 377, 610, 233, 89, 1597, 377, 987, 233, 1597, 377, 610, 34, 1597, 377, 987, 233, 610, 377, 1597, 987, 89, 1597, 233, 1597, 377, 1597, 610, 987, 233, 1597, 987, 1597, 4181, 1597, 610, 377, 987, 233, 610, 1597, 987, 89, 987, 1597, 233, 233, 377, 1597, 987, 610, 2584, 55, 1597, 233, 89, 1597, 987, 1597, 610, 377, 2584, 1597, 987, 233, 610, 2584, 377, 1597, 144, 377, 89, 1597, 233, 1597, 377, 987, 610, 13, 1597, 233, 987, 55, 1597, 610, 1597, 987, 1597, 377, 233, 987, 89, 610, 233, 377, 233, 34, 89, 3, 233, 55, 377, 89, 987, 987, 233, 987, 1597, 377, 610, 233, 377, 1597, 1597, 2584, 89, 987, 233, 987, 377, 1597, 1597, 233, 610, 1597, 987, 377, 1597, 1597, 144, 377, 1597, 233, 1597, 987, 1597, 89, 377, 987, 233, 8, 377, 1597, 233, 987, 2584, 610, 1597, 2584, 987, 4181, 21, 1597, 4181, 55, 144, 377, 987, 2584, 6765, 4181, 1597, 610, 233, 89, 34, 1597, 1597, 13, 233, 2584, 4181, 377, 610, 377, 233, 610, 1597, 377, 1597, 89, 233, 377, 5, 233, 89, 610, 377, 1597, 233, 1597, 987, 377, 144, 4181, 1597, 1597, 377, 1597, 2584, 1597, 987, 610, 89, 1597, 55, 1597, 377, 233, 377, 1597, 4181, 987, 144, 377, 1597, 610, 233, 89, 610, 1597, 233, 377, 987, 55, 987, 89, 987, 377, 1597, 610, 34, 987, 233, 1597, 377, 233, 610, 987, 987, 89, 233, 1597, 2584, 987, 377, 144, 987, 1597, 1597, 377, 377, 987, 610, 1597, 377, 233, 1597, 89, 13, 233, 610, 987, 144, 233, 987, 377, 89, 233, 55, 377, 21, 377, 89, 2, 89, 377, 21, 377, 55, 233, 89, 377, 987, 233, 144, 987, 610, 233, 13, 89, 1597, 233, 377, 1597, 610, 987, 377, 377, 1597, 1597, 987, 144, 377, 987, 2584, 1597, 233, 89, 987, 987, 610, 233, 377, 1597, 233, 987, 34, 610, 1597, 377, 987, 89, 987, 55, 987, 377, 233, 1597, 610, 89, 233, 610, 1597, 377, 144, 987, 4181, 1597, 377, 233, 377, 1597, 55, 1597, 89, 610, 987, 1597, 2584, 1597, 377, 1597, 1597, 4181, 144, 377, 987, 1597, 233, 1597, 377, 610, 89, 233, 5, 377, 233, 89, 1597, 377, 1597, 610, 233, 377, 610, 377, 4181, 2584, 233, 13, 1597, 1597, 34, 89, 233, 610, 1597, 4181, 6765, 2584, 987, 377, 144, 55, 4181, 1597, 21, 4181, 987, 2584, 1597, 610, 2584, 987, 233, 1597, 377, 8, 233, 987, 377, 89, 1597, 987, 1597, 233, 1597, 377, 144, 1597, 1597, 377, 987, 1597, 610, 233, 1597, 1597, 377, 987, 233, 987, 89, 2584, 1597, 1597, 377, 233, 610, 377, 1597, 987, 233, 987, 987, 89, 377, 55, 233, 3, 89, 34, 233, 377, 233, 610, 89, 987, 233, 377, 1597, 987, 1597, 610, 1597, 55, 987, 233, 1597, 13, 610, 987, 377, 1597, 233, 1597, 89, 377, 144, 1597, 377, 2584, 610, 233, 987, 1597, 2584, 377, 610, 1597, 987, 1597, 89, 233, 1597, 55, 2584, 610, 987, 1597, 377, 233, 233, 1597, 987, 89, 987, 1597, 610, 233, 987, 377, 610, 1597, 4181, 1597, 987, 1597, 233, 987, 610, 1597, 377, 1597, 233, 1597, 89, 987, 1597, 377, 610, 233, 987, 377, 1597, 34, 610, 377, 1597, 233, 987, 377, 1597, 89, 233, 610, 377, 144, 55, 233, 144, 233, 377, 21, 55, 377, 987, 233, 89, 610, 1597, 1597, 987, 1597, 987, 233, 13, 987, 377, 1597, 610, 233, 1597, 377, 1597, 89, 610, 377, 233, 1597, 55, 610, 1597, 987, 1597, 2584, 144, 377, 89, 2584, 1597, 1597, 610, 1597, 377, 1597, 987, 1597, 1597, 233, 34, 377, 5, 233, 89, 377, 21, 1597, 233, 377, 377, 1597, 233, 987, 377, 377, 233, 89, 1597, 2584, 987, 377, 233, 987, 377, 987, 144, 233, 55, 233, 377, 144, 377, 610, 233, 89, 987, 1597, 377, 1597, 233, 13, 610, 377, 610, 377, 34, 89, 233, 55, 233, 987, 377, 89, 377, 144, 377, 610, 233, 987, 55, 8, 89, 377, 144, 377, 610, 233, 377, 89, 55, 377, 233, 89, 21, 233, 377, 89, 34, 89, 13, 55, 1, 89, 55, 233, 13, 89, 233, 377, 233, 377, 34, 89, 377, 233, 21, 377, 233, 89, 233, 377, 233, 55, 89, 610, 377, 987, 1597, 233, 610, 377, 144, 377, 610, 233, 89, 8, 55, 377, 987, 233, 610, 987, 377, 987, 144, 377, 610, 89, 377, 987, 1597, 610, 1597, 233, 1597, 55, 377, 610, 233, 89, 1597, 987, 34, 1597, 1597, 377, 1597, 610, 233, 377, 610, 987, 13, 233, 1597, 377, 1597, 987, 89, 233, 610, 377, 144, 377, 610, 233, 55, 89, 233, 987, 2584, 1597, 144, 987, 2584, 377, 987, 233, 377, 987, 2584, 1597, 89, 233, 377, 377, 987, 1597, 1597, 233, 1597, 377, 4181, 377, 2584, 233, 1597, 21, 377, 89, 1597, 610, 233, 377, 5, 377, 987, 34, 233, 2584, 1597, 1597, 987, 1597, 987, 1597, 377, 1597, 233, 610, 1597, 2584, 377, 1597, 2584, 89, 377, 144, 2584, 1597, 2584, 987, 1597, 610, 55, 1597, 233, 377, 1597, 987, 233, 610, 89, 1597, 1597, 377, 987, 1597, 4181, 233, 610, 1597, 377, 987, 1597, 13, 233, 987, 1597, 987, 1597, 2584, 1597, 610, 89, 233, 987, 377, 55, 1597, 21, 1597, 377, 2584, 233, 1597, 610, 987, 144, 377, 233, 55, 144, 377, 610, 233, 89, 1597, 377, 987, 1597, 610, 233, 1597, 377, 1597, 610, 34, 1597, 4181, 377, 987, 1597, 233, 610, 377, 1597, 2584, 987, 1597, 89, 1597, 233, 1597, 2584, 377, 4181, 1597, 2584, 987, 610, 1597, 2584, 987, 233, 1597, 2584, 4181, 987, 1597, 4181, 2584, 1597, 610, 377, 987, 1597, 4181, 233, 610, 1597, 987, 4181, 89, 4181, 377, 987, 4181, 1597, 233, 377, 233, 377, 1597, 987, 1597, 610, 2584, 55, 1597, 233, 89, 1597, 987, 1597, 610, 1597, 377, 1597, 4181, 2584, 1597, 4181, 987, 233, 610, 1597, 2584, 377, 4181, 1597, 144, 987, 377, 89, 1597, 233, 1597, 377, 987, 610, 13, 1597, 233, 987, 55, 1597, 610, 1597, 1597, 987, 1597, 377, 610, 233, 2584, 987, 89, 987, 610, 233, 1597, 377, 233, 610, 34, 89, 3, 233, 55, 610, 377, 233, 89, 987, 987, 2584, 987, 1597, 233, 987, 1597, 1597, 4181, 377, 610, 233, 1597, 2584, 377, 1597, 1597, 1597, 2584, 89, 987, 233, 987, 377, 1597, 4181, 1597, 610, 1597, 987, 233, 2584, 610, 1597, 987, 377, 1597, 2584, 1597, 4181, 2584, 1597, 2584, 144, 377, 1597, 233, 1597, 987, 1597, 89, 377, 987, 233, 8, 377, 1597, 1597, 233, 987, 2584, 4181, 610, 1597, 2584, 987, 4181, 2584, 4181, 1597, 21, 1597, 4181, 55, 144, 377, 987, 2584, 6765, 10946, 4181, 1597, 610, 233, 89, 34, 1597, 4181, 2584, 1597, 13, 4181, 233, 4181, 2584, 4181, 377, 4181, 4181, 610, 377, 4181, 233, 4181, 987, 610, 1597, 377, 1597, 987, 1597, 89, 987, 233, 610, 1597, 377, 5, 233, 89, 610, 1597, 377, 1597, 233, 4181, 4181, 1597, 987, 377, 4181, 144, 4181, 1597, 2584, 1597, 377, 233, 1597, 2584, 1597, 987, 1597, 610, 1597, 89, 1597, 987, 1597, 55, 1597, 2584, 377, 233, 610, 1597, 377, 1597, 4181, 4181, 1597, 1597, 987, 144, 377, 1597, 610, 233, 1597, 1597, 89, 610, 1597, 377, 233, 987, 377, 987, 1597, 55, 1597, 987, 89, 1597, 4181, 987, 1597, 4181, 1597, 377, 4181, 1597, 610, 34, 1597, 987, 233, 1597, 377, 377, 233, 1597, 610, 1597, 987, 987, 4181, 89, 1597, 233, 1597, 2584, 987, 377, 144, 1597, 987, 1597, 1597, 377, 377, 2584, 987, 610, 1597, 377, 233, 1597, 2584, 1597, 610, 89, 13, 987, 233, 610, 987, 1597, 1597, 144, 233, 987, 377, 1597, 89, 233, 55, 377, 21, 377, 233, 89, 2, 89, 233, 377, 21, 377, 55, 233, 89, 1597, 377, 987, 233, 144, 1597, 1597, 987, 610, 233, 987, 13, 89, 610, 1597, 2584, 1597, 233, 377, 1597, 610, 987, 2584, 377, 377, 1597, 1597, 987, 1597, 144, 377, 987, 2584, 1597, 233, 1597, 89, 4181, 987, 987, 1597, 610, 1597, 233, 377, 377, 1597, 233, 987, 1597, 34, 610, 1597, 4181, 377, 1597, 4181, 1597, 987, 4181, 1597, 89, 987, 1597, 55, 1597, 987, 377, 987, 233, 377, 1597, 610, 89, 1597, 1597, 233, 610, 1597, 377, 144, 987, 1597, 1597, 4181, 4181, 1597, 377, 1597, 610, 233, 377, 2584, 1597, 55, 1597, 987, 1597, 89, 1597, 610, 1597, 987, 1597, 2584, 1597, 233, 377, 1597, 2584, 1597, 4181, 144, 4181, 377, 987, 1597, 4181, 4181, 233, 1597, 377, 1597, 610, 89, 233, 5, 377, 1597, 610, 233, 987, 89, 1597, 987, 1597, 377, 1597, 610, 987, 4181, 233, 4181, 377, 610, 4181, 4181, 377, 4181, 2584, 4181, 233, 4181, 13, 1597, 2584, 4181, 1597, 34, 89, 233, 610, 1597, 4181, 10946, 6765, 2584, 987, 377, 144, 55, 4181, 1597, 21, 1597, 4181, 2584, 4181, 987, 2584, 1597, 610, 4181, 2584, 987, 233, 1597, 1597, 377, 8, 233, 987, 377, 89, 1597, 987, 1597, 233, 1597, 377, 144, 2584, 1597, 2584, 4181, 1597, 2584, 1597, 377, 987, 1597, 610, 2584, 233, 987, 1597, 610, 1597, 4181, 1597, 377, 987, 233, 987, 89, 2584, 1597, 1597, 1597, 377, 2584, 1597, 233, 610, 377, 4181, 1597, 1597, 987, 233, 1597, 987, 2584, 987, 987, 89, 233, 377, 610, 55, 233, 3, 89, 34, 610, 233, 377, 1597, 233, 610, 987, 89, 987, 2584, 233, 610, 377, 1597, 987, 1597, 1597, 610, 1597, 55, 987, 233, 1597, 13, 610, 987, 377, 1597, 233, 1597, 89, 377, 987, 144, 1597, 4181, 377, 2584, 1597, 610, 233, 987, 4181, 1597, 2584, 4181, 1597, 377, 1597, 610, 1597, 987, 1597, 89, 233, 1597, 55, 2584, 610, 1597, 987, 1597, 377, 233, 377, 233, 1597, 4181, 987, 377, 4181, 89, 4181, 987, 1597, 610, 233, 4181, 1597, 987, 377, 610, 1597, 2584, 4181, 1597, 987, 4181, 2584, 1597, 233, 987, 2584, 1597, 610, 987, 2584, 1597, 4181, 377, 2584, 1597, 233, 1597, 89, 1597, 987, 2584, 1597, 377, 610, 233, 1597, 987, 377, 4181, 1597, 34, 610, 1597, 377, 1597, 233, 610, 1597, 987, 377, 1597, 89, 233, 610, 377, 144, 55, 233, 377, 144, 987, 610, 1597, 233, 2584, 377, 1597, 21, 1597, 55, 377, 987, 233, 89, 610, 1597, 2584, 1597, 987, 1597, 987, 233, 13, 1597, 987, 377, 1597, 610, 233, 4181, 1597, 987, 377, 1597, 1597, 89, 610, 233, 987, 1597, 377, 233, 1597, 55, 610, 1597, 987, 2584, 1597, 2584, 144, 377, 89, 2584, 1597, 377, 2584, 1597, 610, 233, 1597, 377, 1597, 987, 1597, 987, 1597, 1597, 2584, 233, 34, 987, 377, 5, 377, 233, 610, 1597, 89, 377, 21, 1597, 233, 2584, 377, 4181, 377, 1597, 233, 1597, 1597, 987, 377, 377, 233, 89, 1597, 2584, 987, 377, 233, 987, 377, 2584, 987, 144, 1597, 2584, 987, 233, 89, 55, 233, 610, 377, 144, 377, 610, 233, 89, 987, 1597, 377, 1597, 233, 13, 987, 610, 377, 233, 610, 1597, 377, 1597, 1597, 34, 987, 1597, 89, 233, 610, 377, 55, 1597, 233, 1597, 610, 1597, 987, 377, 89, 610, 377, 144, 987, 377, 987, 610, 233, 987, 377, 55, 8, 89, 233, 610, 377, 144, 377, 610, 233, 1597, 987, 377, 610, 89, 55, 233, 377, 233, 89, 233, 377, 21, 233, 377, 89, 34, 377, 233, 377, 233, 89, 13, 233, 55, 89, 1, 21, 55, 89, 233, 55, 233, 13, 89, 377, 233, 377, 233, 377, 34, 89, 377, 610, 233, 21, 377, 233, 89, 987, 233, 610, 377, 233, 987, 55, 89, 610, 1597, 377, 987, 1597, 233, 610, 377, 144, 377, 610, 233, 1597, 987, 89, 8, 55, 377, 1597, 987, 233, 610, 987, 377, 1597, 987, 144, 377, 987, 610, 89, 1597, 377, 987, 1597, 610, 1597, 233, 2584, 1597, 377, 55, 377, 610, 233, 89, 1597, 987, 34, 2584, 1597, 987, 1597, 377, 1597, 610, 233, 377, 610, 987, 13, 233, 1597, 377, 1597, 4181, 2584, 987, 89, 233, 610, 377, 144, 2584, 1597, 377, 610, 233, 55, 89, 377, 1597, 987, 233, 1597, 987, 2584, 1597, 144, 987, 2584, 4181, 377, 987, 2584, 610, 1597, 233, 377, 4181, 987, 610, 4181, 2584, 1597, 89, 233, 377, 1597, 377, 987, 4181, 1597, 1597, 233, 1597, 4181, 377, 1597, 4181, 1597, 377, 2584, 4181, 233, 4181, 1597, 21, 377, 1597, 89, 4181, 4181, 1597, 610, 987, 233, 987, 377, 5, 377, 987, 1597, 34, 233, 2584, 1597, 1597, 987, 1597, 987, 1597, 377, 1597, 233, 2584, 1597, 4181, 610, 1597, 2584, 377, 1597, 2584, 4181, 89, 1597, 987, 610, 987, 377, 144, 4181, 2584, 1597, 2584, 4181, 987, 987, 1597, 610, 55, 4181, 1597, 233, 4181, 377, 1597, 987, 233, 987, 610, 89, 1597, 4181, 2584, 4181, 1597, 377, 2584, 987, 1597, 4181, 4181, 233, 610, 1597, 377, 6765, 4181, 2584, 987, 4181, 1597, 13, 233, 2584, 987, 1597, 1597, 987, 377, 1597, 6765, 2584, 1597, 610, 89, 233, 1597, 987, 377, 55, 1597, 2584, 21, 1597, 377, 1597, 2584, 233, 1597, 610, 2584, 987, 144, 377, 610, 233, 55, 377, 144, 377, 610, 233, 89, 2584, 1597, 377, 987, 1597, 610, 4181, 233, 2584, 1597, 377, 987, 2584, 1597, 610, 4181, 1597, 4181, 34, 1597, 4181, 2584, 377, 987, 1597, 2584, 233, 610, 377, 1597, 2584, 6765, 987, 6765, 1597, 89, 4181, 1597, 4181, 233, 1597, 2584, 377, 4181, 1597, 2584, 987, 1597, 610, 1597, 2584, 987, 233, 1597, 2584, 4181, 4181, 987, 1597, 4181, 10946, 4181, 2584, 1597, 6765, 610, 4181, 1597, 377, 987, 4181, 1597, 4181, 233, 6765, 4181, 4181, 610, 6765, 1597, 987, 4181, 89, 4181, 377, 987, 4181, 1597, 1597, 233, 377, 233, 987, 377, 1597, 987, 1597, 610, 2584, 55, 1597, 2584, 233, 89, 1597, 6765, 987, 6765, 2584, 1597, 610, 1597, 377, 1597, 4181, 6765, 2584, 1597, 4181, 987, 233, 610, 1597, 2584, 377, 4181, 1597, 2584, 144, 987, 1597, 987, 377, 1597, 4181, 987, 89, 1597, 4181, 233, 6765, 1597, 6765, 377, 987, 1597, 610, 13, 1597, 233, 987, 55, 1597, 610, 1597, 2584, 1597, 987, 1597, 4181, 2584, 4181, 377, 610, 233, 2584, 987, 89, 987, 610, 2584, 233, 1597, 377, 233, 610, 987, 34, 89, 144, 55, 3, 144, 610, 233, 987, 55, 610, 2584, 377, 233, 89, 987, 610, 987, 2584, 987, 1597, 233, 987, 1597, 2584, 1597, 4181, 377, 4181, 610, 233, 1597, 987, 2584, 377, 1597, 1597, 1597, 2584, 89, 987, 6765, 233, 987, 377, 4181, 1597, 6765, 4181, 1597, 610, 1597, 987, 233, 2584, 610, 1597, 987, 6765, 377, 6765, 1597, 2584, 987, 1597, 4181, 2584, 1597, 4181, 2584, 144, 377, 2584, 1597, 233, 4181, 1597, 10946, 987, 1597, 4181, 89, 4181, 1597, 377, 987, 4181, 2584, 987, 1597, 233, 8, 377, 1597, 1597, 233, 4181, 987, 2584, 6765, 4181, 610, 1597, 2584, 987, 4181, 4181, 2584, 4181, 1597, 2584, 21, 1597, 4181, 4181, 55, 144, 377, 987, 2584, 6765, 17711, 10946, 4181, 1597, 610, 233, 89, 10946, 34, 1597, 4181, 2584, 1597, 13, 4181, 2584, 4181, 233, 4181, 4181, 2584, 4181, 377, 10946, 4181, 4181, 6765, 610, 377, 6765, 4181, 1597, 6765, 233, 4181, 987, 4181, 610, 1597, 4181, 377, 1597, 987, 1597, 89, 4181, 987, 233, 610, 1597, 377, 987, 5, 233, 89, 610, 1597, 987, 1597, 377, 1597, 2584, 1597, 233, 4181, 4181, 1597, 987, 377, 4181, 987, 4181, 144, 4181, 1597, 4181, 2584, 1597, 4181, 377, 4181, 610, 233, 4181, 6765, 1597, 2584, 1597, 4181, 6765, 987, 4181, 1597, 4181, 610, 6765, 6765, 1597, 4181, 89, 1597, 987, 1597, 55, 1597, 4181, 2584, 377, 6765, 233, 610, 1597, 2584, 987, 377, 1597, 4181, 4181, 1597, 1597, 4181, 987, 144, 4181, 377, 987, 1597, 610, 233, 1597, 2584, 1597, 987, 89, 377, 987, 610, 1597, 1597, 377, 233, 987, 1597, 377, 987, 1597, 2584, 4181, 55, 1597, 987, 2584, 1597, 233, 89, 1597, 4181, 987, 6765, 6765, 1597, 6765, 2584, 1597, 4181, 1597, 377, 4181, 4181, 1597, 610, 34, 1597, 987, 4181, 233, 1597, 987, 377, 377, 233, 2584, 1597, 610, 1597, 987, 4181, 987, 4181, 89, 1597, 4181, 233, 1597, 2584, 987, 377, 6765, 6765, 144, 1597, 987, 1597, 4181, 1597, 377, 377, 2584, 987, 610, 1597, 4181, 4181, 377, 233, 1597, 4181, 2584, 1597, 610, 89, 13, 987, 233, 610, 987, 1597, 1597, 144, 1597, 987, 233, 1597, 987, 377, 1597, 987, 1597, 89, 233, 55, 987, 377, 21, 610, 377, 233, 89, 2, 89, 233, 377, 610, 21, 377, 987, 55, 233, 89, 1597, 987, 1597, 377, 987, 1597, 233, 987, 1597, 144, 1597, 1597, 987, 610, 233, 987, 13, 89, 610, 1597, 2584, 4181, 1597, 233, 377, 4181, 4181, 1597, 610, 987, 2584, 377, 377, 1597, 4181, 1597, 987, 1597, 144, 6765, 6765, 377, 987, 2584, 1597, 233, 4181, 1597, 89, 4181, 987, 4181, 987, 1597, 610, 1597, 2584, 233, 377, 377, 987, 1597, 233, 4181, 987, 1597, 34, 610, 1597, 4181, 4181, 377, 1597, 4181, 1597, 2584, 6765, 1597, 6765, 6765, 987, 4181, 1597, 89, 233, 1597, 2584, 987, 1597, 55, 4181, 2584, 1597, 987, 377, 1597, 987, 233, 377, 1597, 1597, 610, 987, 377, 89, 987, 1597, 2584, 1597, 233, 610, 1597, 987, 377, 4181, 144, 987, 4181, 1597, 1597, 4181, 4181, 1597, 377, 987, 2584, 1597, 610, 233, 6765, 377, 2584, 4181, 1597, 55, 1597, 987, 1597, 89, 4181, 1597, 6765, 6765, 610, 4181, 1597, 4181, 987, 6765, 4181, 1597, 2584, 1597, 6765, 4181, 233, 610, 4181, 377, 4181, 1597, 2584, 4181, 1597, 4181, 144, 4181, 987, 4181, 377, 987, 1597, 4181, 4181, 233, 1597, 2584, 1597, 377, 1597, 987, 1597, 610, 89, 233, 5, 987, 377, 1597, 610, 233, 987, 4181, 89, 1597, 987, 1597, 377, 4181, 1597, 610, 4181, 987, 4181, 233, 6765, 1597, 4181, 6765, 377, 610, 6765, 4181, 4181, 10946, 377, 4181, 2584, 4181, 4181, 233, 4181, 2584, 4181, 13, 1597, 2584, 4181, 1597, 34, 10946, 89, 233, 610, 1597, 4181, 10946, 17711, 6765, 2584, 987, 377, 144, 55, 4181, 4181, 1597, 21, 2584, 1597, 4181, 2584, 4181, 4181, 987, 2584, 1597, 610, 4181, 6765, 2584, 987, 4181, 233, 1597, 1597, 377, 8, 233, 1597, 987, 2584, 4181, 987, 377, 1597, 4181, 89, 4181, 1597, 987, 10946, 1597, 4181, 233, 1597, 2584, 377, 144, 2584, 4181, 1597, 2584, 4181, 1597, 987, 2584, 1597, 6765, 377, 6765, 987, 1597, 610, 2584, 233, 987, 1597, 610, 1597, 4181, 6765, 1597, 4181, 377, 987, 233, 6765, 987, 89, 2584, 1597, 1597, 1597, 377, 2584, 987, 1597, 233, 610, 4181, 377, 4181, 1597, 2584, 1597, 987, 233, 1597, 987, 2584, 987, 610, 987, 89, 233, 377, 2584, 610, 55, 987, 233, 610, 144, 3, 55, 144, 89, 34, 987, 610, 233, 377, 1597, 233, 2584, 610, 987, 89, 987, 2584, 233, 610, 377, 4181, 2584, 4181, 1597, 987, 1597, 2584, 1597, 610, 1597, 55, 987, 233, 1597, 13, 610, 1597, 987, 377, 6765, 1597, 6765, 233, 4181, 1597, 89, 987, 4181, 1597, 377, 987, 1597, 987, 144, 2584, 1597, 4181, 377, 2584, 1597, 610, 233, 987, 4181, 1597, 2584, 6765, 4181, 1597, 377, 1597, 610, 1597, 2584, 6765, 987, 6765, 1597, 89, 233, 2584, 1597, 55, 2584, 610, 1597, 987, 1597, 377, 987, 233, 377, 233, 1597, 1597, 4181, 987, 377, 4181, 89, 4181, 987, 1597, 6765, 610, 4181, 4181, 6765, 233, 4181, 1597, 4181, 987, 377, 1597, 4181, 610, 6765, 1597, 2584, 4181, 10946, 4181, 1597, 987, 4181, 4181, 2584, 1597, 233, 987, 2584, 1597, 610, 1597, 987, 2584, 1597, 4181, 377, 2584, 1597, 233, 4181, 1597, 4181, 89, 1597, 6765, 987, 6765, 2584, 1597, 377, 610, 233, 2584, 1597, 987, 377, 2584, 4181, 1597, 34, 4181, 1597, 4181, 610, 1597, 2584, 987, 377, 1597, 2584, 233, 4181, 610, 1597, 987, 377, 1597, 2584, 89, 233, 610, 377, 144, 377, 55, 233, 610, 377, 144, 987, 2584, 610, 1597, 233, 2584, 1597, 377, 1597, 21, 2584, 1597, 55, 377, 987, 1597, 233, 89, 610, 1597, 2584, 6765, 1597, 377, 987, 1597, 1597, 987, 2584, 233, 13, 1597, 4181, 987, 2584, 4181, 6765, 377, 1597, 610, 233, 4181, 4181, 1597, 987, 2584, 377, 1597, 4181, 2584, 4181, 1597, 89, 610, 987, 233, 987, 1597, 377, 4181, 233, 1597, 4181, 55, 610, 1597, 987, 987, 4181, 2584, 1597, 2584, 4181, 144, 377, 987, 610, 987, 1597, 89, 4181, 2584, 1597, 377, 2584, 1597, 610, 4181, 1597, 2584, 233, 1597, 377, 1597, 987, 1597, 987, 1597, 1597, 2584, 233, 34, 1597, 987, 377, 5, 377, 987, 233, 987, 610, 1597, 4181, 4181, 89, 1597, 377, 21, 1597, 4181, 233, 4181, 2584, 377, 1597, 4181, 1597, 377, 4181, 1597, 233, 1597, 1597, 4181, 987, 377, 1597, 377, 233, 89, 1597, 2584, 4181, 610, 987, 4181, 377, 233, 1597, 610, 2584, 987, 377, 4181, 2584, 987, 144, 1597, 2584, 987, 1597, 233, 987, 1597, 377, 89, 55, 233, 610, 377, 1597, 2584, 144, 377, 610, 233, 89, 987, 2584, 4181, 1597, 377, 1597, 233, 13, 987, 610, 377, 233, 610, 1597, 377, 1597, 987, 1597, 2584, 34, 987, 1597, 89, 233, 610, 377, 55, 377, 1597, 2584, 233, 1597, 610, 1597, 987, 377, 1597, 89, 610, 987, 377, 144, 987, 1597, 377, 987, 610, 233, 987, 1597, 377, 55, 8, 89, 987, 1597, 233, 610, 377, 144, 377, 610, 233, 1597, 987, 377, 1597, 610, 89, 55, 987, 233, 377, 610, 233, 987, 89, 233, 377, 21, 233, 610, 377, 89, 34, 377, 233, 377, 233, 377, 89, 13, 233, 55, 233, 89, 55, 21, 1, 21, 55, 89, 89, 233, 55, 233, 13, 89, 377, 610, 233, 377, 233, 987, 377, 34, 987, 89, 377, 610, 233, 1597, 21, 377, 987, 377, 987, 233, 89, 987, 1597, 233, 610, 1597, 377, 233, 987, 987, 377, 1597, 55, 89, 610, 1597, 377, 987, 1597, 233, 610, 1597, 2584, 377, 1597, 144, 377, 1597, 610, 233, 1597, 1597, 377, 1597, 987, 89, 8, 987, 55, 377, 1597, 987, 233, 610, 987, 377, 1597, 2584, 987, 144, 377, 987, 610, 4181, 89, 1597, 377, 987, 2584, 1597, 610, 1597, 233, 2584, 987, 1597, 1597, 377, 55, 377, 610, 233, 89, 1597, 987, 34, 4181, 2584, 1597, 987, 1597, 377, 1597, 610, 233, 377, 610, 987, 13, 233, 1597, 1597, 4181, 1597, 4181, 377, 1597, 4181, 2584, 987, 1597, 89, 233, 610, 377, 1597, 144, 2584, 1597, 377, 610, 233, 1597, 55, 377, 89, 377, 1597, 987, 233, 1597, 2584, 987, 4181, 6765, 2584, 4181, 4181, 1597, 144, 987, 2584, 1597, 4181, 377, 987, 2584, 6765, 4181, 610, 4181, 1597, 233, 6765, 377, 1597, 4181, 4181, 987, 610, 4181, 2584, 4181, 4181, 1597, 89, 233, 377, 1597, 377, 987, 4181, 1597, 1597, 233, 1597, 2584, 4181, 377, 1597, 4181, 1597, 377, 2584, 4181, 1597, 6765, 233, 4181, 987, 1597, 21, 4181, 377, 1597, 89, 4181, 4181, 2584, 4181, 1597, 610, 4181, 987, 2584, 233, 987, 377, 5, 89, 377, 987, 1597, 34, 233, 2584, 1597, 4181, 1597, 4181, 6765, 4181, 987, 2584, 1597, 1597, 987, 1597, 377, 1597, 233, 2584, 4181, 1597, 4181, 610, 1597, 2584, 987, 4181, 377, 1597, 2584, 4181, 89, 1597, 987, 610, 1597, 987, 377, 144, 4181, 2584, 4181, 1597, 2584, 4181, 987, 987, 1597, 610, 55, 4181, 1597, 233, 4181, 4181, 2584, 4181, 377, 2584, 1597, 4181, 987, 233, 987, 2584, 4181, 610, 89, 1597, 4181, 2584, 4181, 1597, 377, 2584, 987, 1597, 4181, 4181, 4181, 233, 4181, 610, 1597, 377, 6765, 4181, 2584, 987, 4181, 1597, 13, 1597, 233, 2584, 987, 1597, 1597, 987, 6765, 377, 1597, 6765, 2584, 1597, 610, 6765, 1597, 89, 233, 1597, 987, 377, 55, 1597, 2584, 1597, 4181, 21, 1597, 4181, 377, 1597, 2584, 233, 1597, 4181, 610, 2584, 2584, 987, 1597, 144, 377, 610, 233, 55, 377, 144, 377, 987, 610, 233, 89, 4181, 4181, 2584, 1597, 377, 987, 1597, 610, 4181, 233, 2584, 6765, 1597, 377, 987, 2584, 1597, 4181, 610, 4181, 1597, 10946, 6765, 4181, 34, 1597, 4181, 2584, 4181, 377, 987, 1597, 4181, 2584, 233, 610, 1597, 2584, 377, 6765, 1597, 2584, 6765, 987, 6765, 1597, 6765, 89, 4181, 1597, 4181, 233, 1597, 2584, 377, 6765, 4181, 4181, 6765, 1597, 2584, 987, 4181, 1597, 1597, 610, 1597, 2584, 987, 233, 1597, 2584, 4181, 4181, 6765, 987, 4181, 1597, 4181, 10946, 4181, 2584, 1597, 6765, 610, 4181, 1597, 4181, 4181, 377, 10946, 987, 4181, 1597, 4181, 233, 6765, 4181, 4181, 2584, 4181, 610, 6765, 1597, 10946, 987, 4181, 89, 4181, 377, 987, 4181, 1597, 1597, 4181, 233, 377, 233, 987, 2584, 377, 1597, 987, 1597, 610, 2584, 4181, 55, 1597, 4181, 2584, 233, 89, 4181, 1597, 6765, 987, 6765, 2584, 1597, 6765, 610, 1597, 377, 4181, 1597, 4181, 6765, 2584, 1597, 4181, 987, 4181, 4181, 233, 610, 1597, 2584, 377, 1597, 4181, 2584, 1597, 2584, 144, 987, 1597, 987, 6765, 2584, 377, 1597, 4181, 6765, 987, 89, 1597, 4181, 233, 6765, 1597, 6765, 377, 987, 1597, 4181, 610, 2584, 13, 2584, 1597, 233, 987, 55, 4181, 1597, 610, 1597, 2584, 1597, 10946, 6765, 987, 1597, 4181, 2584, 4181, 4181, 377, 610, 233, 4181, 4181, 2584, 987, 89, 2584, 6765, 987, 1597, 610, 1597, 2584, 233, 1597, 1597, 1597, 377, 233, 610, 987, 34, 89, 144, 55, 3, 144, 610, 233, 987, 55, 1597, 610, 4181, 2584, 377, 233, 89, 987, 610, 987, 2584, 987, 1597, 233, 4181, 1597, 987, 1597, 2584, 1597, 1597, 4181, 377, 4181, 1597, 610, 233, 1597, 4181, 987, 2584, 4181, 377, 1597, 6765, 10946, 4181, 1597, 1597, 4181, 10946, 2584, 89, 987, 6765, 233, 10946, 987, 377, 4181, 1597, 6765, 4181, 1597, 610, 1597, 987, 1597, 4181, 233, 2584, 6765, 610, 1597, 987, 6765, 377, 6765, 1597, 6765, 2584, 987, 6765, 4181, 1597, 4181, 10946, 2584, 1597, 6765, 4181, 2584, 144, 377, 2584, 1597, 10946, 233, 4181, 1597, 10946, 987, 1597, 4181, 89, 4181, 1597, 377, 987, 6765, 1597, 4181, 2584, 987, 1597, 233, 8, 377, 1597, 4181, 1597, 233, 4181, 987, 2584, 6765, 4181, 610, 1597, 2584, 987, 4181, 1597, 4181, 2584, 4181, 1597, 2584, 21, 1597, 4181, 6765, 4181, 55, 144, 377, 987, 2584, 6765, 17711, 28657, 10946, 4181, 1597, 610, 233, 89, 10946, 4181, 34, 6765, 1597, 4181, 2584, 4181, 1597, 4181, 987, 13, 4181, 2584, 4181, 233, 4181, 4181, 2584, 4181, 6765, 1597, 377, 10946, 4181, 17711, 4181, 10946, 6765, 610, 6765, 377, 6765, 4181, 1597, 4181, 6765, 233, 4181, 1597, 987, 4181, 610, 1597, 2584, 4181, 4181, 377, 1597, 987, 1597, 89, 4181, 987, 233, 610, 1597, 377, 987, 1597, 5, 377, 233, 89, 610, 1597, 987, 1597, 377, 2584, 1597, 2584, 4181, 1597, 233, 4181, 4181, 610, 1597, 4181, 987, 377, 4181, 6765, 987, 4181, 144, 4181, 6765, 1597, 4181, 2584, 1597, 4181, 377, 4181, 610, 233, 4181, 987, 6765, 4181, 1597, 2584, 17711, 1597, 4181, 10946, 1597, 4181, 6765, 987, 4181, 1597, 4181, 610, 6765, 6765, 4181, 1597, 4181, 4181, 4181, 89, 1597, 987, 1597, 55, 1597, 4181, 2584, 377, 4181, 1597, 10946, 6765, 987, 4181, 233, 610, 1597, 2584, 987, 377, 4181, 10946, 1597, 4181, 6765, 10946, 4181, 4181, 1597, 1597, 4181, 987, 144, 4181, 377, 987, 1597, 610, 233, 1597, 2584, 6765, 1597, 1597, 987, 89, 377, 987, 610, 1597, 1597, 377, 10946, 6765, 2584, 233, 987, 4181, 6765, 1597, 377, 4181, 987, 1597, 2584, 4181, 55, 1597, 987, 4181, 2584, 1597, 233, 89, 1597, 4181, 987, 6765, 6765, 1597, 6765, 2584, 10946, 1597, 4181, 1597, 377, 4181, 10946, 4181, 1597, 610, 4181, 34, 1597, 987, 4181, 233, 1597, 4181, 987, 377, 377, 2584, 4181, 233, 2584, 4181, 1597, 610, 1597, 987, 4181, 987, 10946, 4181, 4181, 89, 1597, 4181, 233, 1597, 4181, 2584, 987, 377, 6765, 6765, 144, 1597, 987, 1597, 4181, 1597, 377, 377, 2584, 987, 4181, 610, 1597, 4181, 6765, 987, 4181, 377, 1597, 233, 1597, 4181, 2584, 1597, 610, 89, 13, 1597, 987, 233, 610, 987, 1597, 4181, 4181, 1597, 144, 4181, 1597, 987, 233, 1597, 1597, 987, 377, 1597, 987, 1597, 89, 233, 377, 55, 987, 377, 1597, 21, 610, 377, 233, 89, 2, 89, 233, 377, 610, 21, 1597, 377, 987, 55, 377, 233, 89, 1597, 987, 1597, 377, 987, 1597, 1597, 233, 987, 1597, 4181, 144, 1597, 4181, 4181, 1597, 987, 610, 233, 987, 1597, 13, 89, 610, 1597, 2584, 4181, 1597, 233, 1597, 377, 4181, 987, 6765, 4181, 1597, 610, 4181, 987, 2584, 377, 377, 1597, 4181, 1597, 987, 1597, 144, 6765, 6765, 377, 987, 2584, 4181, 1597, 233, 4181, 1597, 89, 4181, 4181, 10946, 987, 4181, 987, 1597, 610, 1597, 4181, 2584, 233, 4181, 2584, 377, 377, 987, 4181, 1597, 233, 4181, 987, 1597, 34, 4181, 610, 1597, 4181, 10946, 4181, 377, 1597, 4181, 1597, 10946, 2584, 6765, 1597, 6765, 6765, 987, 4181, 1597, 89, 233, 1597, 2584, 4181, 987, 1597, 55, 4181, 2584, 1597, 987, 4181, 377, 1597, 6765, 4181, 987, 233, 2584, 6765, 10946, 377, 1597, 1597, 610, 987, 377, 89, 987, 1597, 1597, 6765, 2584, 1597, 233, 610, 1597, 987, 377, 4181, 144, 987, 4181, 1597, 1597, 4181, 4181, 10946, 6765, 4181, 1597, 10946, 4181, 377, 987, 2584, 1597, 610, 233, 4181, 987, 6765, 10946, 1597, 4181, 377, 2584, 4181, 1597, 55, 1597, 987, 1597, 89, 4181, 4181, 4181, 1597, 4181, 6765, 6765, 610, 4181, 1597, 4181, 987, 6765, 4181, 1597, 10946, 4181, 1597, 17711, 2584, 1597, 4181, 6765, 987, 4181, 233, 610, 4181, 377, 4181, 1597, 2584, 4181, 1597, 6765, 4181, 144, 4181, 987, 6765, 4181, 377, 987, 4181, 1597, 610, 4181, 4181, 233, 1597, 4181, 2584, 1597, 2584, 377, 1597, 987, 1597, 610, 89, 233, 377, 5, 1597, 987, 377, 1597, 610, 233, 987, 4181, 89, 1597, 987, 1597, 377, 4181, 4181, 2584, 1597, 610, 4181, 987, 1597, 4181, 233, 6765, 4181, 1597, 4181, 6765, 377, 6765, 610, 6765, 10946, 4181, 17711, 4181, 10946, 377, 1597, 6765, 4181, 2584, 4181, 4181, 233, 4181, 2584, 4181, 13, 987, 4181, 1597, 4181, 2584, 4181, 1597, 6765, 34, 4181, 10946, 89, 233, 610, 1597, 4181, 10946, 28657, 17711, 6765, 2584, 987, 377, 144, 55, 4181, 6765, 4181, 1597, 21, 2584, 1597, 4181, 2584, 4181, 1597, 4181, 987, 2584, 1597, 610, 4181, 6765, 2584, 987, 4181, 233, 1597, 4181, 1597, 377, 8, 233, 1597, 987, 2584, 4181, 1597, 6765, 987, 377, 1597, 4181, 89, 4181, 1597, 987, 10946, 1597, 4181, 233, 10946, 1597, 2584, 377, 144, 2584, 4181, 6765, 1597, 2584, 10946, 4181, 1597, 4181, 6765, 987, 2584, 6765, 1597, 6765, 377, 6765, 987, 1597, 610, 6765, 2584, 233, 4181, 1597, 987, 1597, 610, 1597, 4181, 6765, 1597, 4181, 377, 987, 10946, 233, 6765, 987, 89, 2584, 10946, 4181, 1597, 1597, 4181, 10946, 6765, 1597, 377, 4181, 2584, 987, 4181, 1597, 233, 610, 1597, 4181, 377, 4181, 1597, 1597, 2584, 1597, 987, 1597, 4181, 233, 1597, 987, 2584, 987, 610, 987, 89, 233, 377, 2584, 4181, 610, 1597, 55, 987, 233, 610, 144, 3, 55, 144, 89, 34, 987, 610, 233, 377, 1597, 1597, 1597, 233, 2584, 1597, 610, 1597, 987, 6765, 2584, 89, 987, 2584, 4181, 4181, 233, 610, 377, 4181, 4181, 2584, 4181, 1597, 987, 6765, 10946, 1597, 2584, 1597, 610, 1597, 4181, 55, 987, 233, 1597, 2584, 13, 2584, 610, 4181, 1597, 987, 377, 6765, 1597, 6765, 233, 4181, 1597, 89, 987, 6765, 4181, 1597, 377, 2584, 6765, 987, 1597, 987, 144, 2584, 1597, 2584, 4181, 1597, 377, 2584, 1597, 610, 233, 4181, 4181, 987, 4181, 1597, 2584, 6765, 4181, 1597, 4181, 377, 1597, 610, 6765, 1597, 2584, 6765, 987, 6765, 1597, 4181, 89, 233, 2584, 4181, 1597, 55, 4181, 2584, 610, 1597, 987, 1597, 377, 2584, 987, 233, 377, 233, 4181, 1597, 1597, 4181, 987, 377, 4181, 89, 4181, 987, 10946, 1597, 6765, 610, 4181, 2584, 4181, 4181, 6765, 233, 4181, 1597, 4181, 987, 10946, 377, 4181, 4181, 1597, 4181, 610, 6765, 1597, 2584, 4181, 10946, 4181, 1597, 4181, 987, 6765, 4181, 4181, 2584, 1597, 233, 987, 2584, 1597, 610, 1597, 1597, 4181, 987, 2584, 1597, 6765, 4181, 4181, 6765, 377, 2584, 1597, 233, 4181, 1597, 4181, 89, 6765, 1597, 6765, 987, 6765, 2584, 1597, 6765, 377, 2584, 1597, 610, 233, 2584, 4181, 1597, 987, 377, 4181, 2584, 4181, 1597, 34, 4181, 6765, 10946, 1597, 4181, 610, 4181, 1597, 2584, 987, 377, 1597, 6765, 2584, 233, 4181, 610, 1597, 987, 377, 1597, 2584, 4181, 4181, 89, 233, 610, 987, 377, 144, 377, 55, 233, 610, 377, 144, 1597, 987, 2584, 2584, 610, 4181, 1597, 233, 2584, 1597, 377, 4181, 1597, 21, 4181, 1597, 2584, 1597, 55, 377, 987, 1597, 233, 89, 1597, 6765, 610, 1597, 2584, 6765, 1597, 377, 6765, 987, 1597, 1597, 987, 2584, 233, 1597, 13, 1597, 4181, 987, 2584, 4181, 6765, 377, 1597, 610, 4181, 233, 4181, 4181, 4181, 1597, 987, 2584, 377, 1597, 4181, 2584, 4181, 1597, 89, 610, 4181, 2584, 987, 233, 987, 4181, 1597, 2584, 377, 4181, 2584, 4181, 4181, 233, 1597, 4181, 55, 610, 1597, 987, 987, 4181, 2584, 1597, 4181, 2584, 4181, 144, 377, 987, 1597, 610, 987, 1597, 89, 4181, 2584, 1597, 377, 4181, 987, 2584, 1597, 610, 4181, 1597, 4181, 2584, 233, 1597, 377, 1597, 987, 1597, 1597, 2584, 987, 4181, 6765, 4181, 1597, 4181, 1597, 2584, 233, 34, 1597, 987, 377, 89, 5, 377, 987, 233, 2584, 987, 4181, 610, 1597, 4181, 2584, 4181, 4181, 89, 1597, 377, 4181, 21, 1597, 987, 4181, 233, 6765, 1597, 4181, 2584, 377, 1597, 4181, 1597, 377, 4181, 2584, 1597, 233, 1597, 1597, 4181, 987, 377, 1597, 377, 233, 89, 1597, 4181, 4181, 2584, 4181, 610, 987, 4181, 4181, 1597, 377, 6765, 233, 1597, 4181, 610, 4181, 6765, 2584, 987, 377, 4181, 1597, 2584, 987, 144, 1597, 4181, 4181, 2584, 6765, 4181, 987, 2584, 1597, 233, 987, 1597, 377, 89, 377, 55, 1597, 233, 610, 377, 1597, 2584, 144, 1597, 377, 610, 233, 89, 1597, 987, 2584, 4181, 1597, 377, 4181, 1597, 4181, 1597, 1597, 233, 13, 987, 610, 377, 233, 610, 1597, 377, 1597, 987, 1597, 2584, 4181, 34, 987, 1597, 89, 233, 610, 377, 55, 377, 1597, 1597, 987, 2584, 233, 1597, 610, 1597, 2584, 987, 377, 1597, 89, 4181, 610, 987, 377, 144, 987, 2584, 1597, 377, 987, 610, 233, 987, 1597, 377, 55, 987, 8, 89, 987, 1597, 377, 1597, 1597, 233, 610, 1597, 377, 144, 1597, 377, 2584, 1597, 610, 233, 1597, 987, 377, 1597, 610, 89, 55, 1597, 377, 987, 987, 233, 377, 1597, 610, 233, 1597, 987, 89, 233, 987, 377, 987, 377, 21, 1597, 233, 610, 377, 89, 987, 34, 377, 987, 233, 377, 233, 610, 377, 89, 13, 233, 55, 233, 89, 89, 55, 21, 1]

151227(8)

Ruby


Stern's diatomic series に現れるフィボナッチ数(1)

フィボナッチ数を取り出してみた。

def A002487(n)
  a, b = 0, 1
  ary = [a, b]
  i = 1
  while i < n
    a, b = b, b + a - 2 * (a % b)
    ary << b
    i += 1
  end
  ary[0..n]
end

# フィボナッチ数列は上とよく似ている
def fib_ary(n)
  a, b = 0, 1
  ary = [a, b]
  while b < n
    a, b = b, b + a
    ary << b
  end
  ary
end

N = 11
ary = A002487(2 ** N)
f_ary = fib_ary(ary.max)

i_ary = []
idx = 0
ary.each{|i|
  if f_ary.include?(i)
    p [idx.to_s(2), idx, i]
    i_ary << i
  end
  idx += 1
}
p i_ary

出力結果
["0", 0, 0]
["1", 1, 1]
["10", 2, 1]
["11", 3, 2]
["100", 4, 1]
["101", 5, 3]
["110", 6, 2]
["111", 7, 3]
["1000", 8, 1]
["1010", 10, 3]
["1011", 11, 5]
["1100", 12, 2]
["1101", 13, 5]
["1110", 14, 3]
["10000", 16, 1]
["10001", 17, 5]
["10100", 20, 3]
["10101", 21, 8]
["10110", 22, 5]
["11000", 24, 2]
["11010", 26, 5]
["11011", 27, 8]
["11100", 28, 3]
["11111", 31, 5]
["100000", 32, 1]
["100010", 34, 5]
["101000", 40, 3]
["101010", 42, 8]
["101011", 43, 13]
["101100", 44, 5]
["110000", 48, 2]
["110100", 52, 5]
["110101", 53, 13]
["110110", 54, 8]
["111000", 56, 3]
["111110", 62, 5]
["1000000", 64, 1]
["1000100", 68, 5]
["1000111", 71, 13]
["1001111", 79, 13]
["1010000", 80, 3]
["1010100", 84, 8]
["1010101", 85, 21]
["1010110", 86, 13]
["1011000", 88, 5]
["1100000", 96, 2]
["1101000", 104, 5]
["1101010", 106, 13]
["1101011", 107, 21]
["1101100", 108, 8]
["1110000", 112, 3]
["1110001", 113, 13]
["1111001", 121, 13]
["1111100", 124, 5]
["10000000", 128, 1]
["10000001", 129, 8]
["10000011", 131, 13]
["10001000", 136, 5]
["10001110", 142, 13]
["10011110", 158, 13]
["10100000", 160, 3]
["10101000", 168, 8]
["10101010", 170, 21]
["10101011", 171, 34]
["10101100", 172, 13]
["10110000", 176, 5]
["10111111", 191, 13]
["11000000", 192, 2]
["11000001", 193, 13]
["11010000", 208, 5]
["11010100", 212, 13]
["11010101", 213, 34]
["11010110", 214, 21]
["11011000", 216, 8]
["11100000", 224, 3]
["11100010", 226, 13]
["11110010", 242, 13]
["11111000", 248, 5]
["11111101", 253, 13]
["11111111", 255, 8]
["100000000", 256, 1]
["100000010", 258, 8]
["100000110", 262, 13]
["100001111", 271, 21]
["100010000", 272, 5]
["100011100", 284, 13]
["100011111", 287, 21]
["100100011", 291, 34]
["100111100", 316, 13]
["101000000", 320, 3]
["101010000", 336, 8]
["101010100", 340, 21]
["101010101", 341, 55]
["101010110", 342, 34]
["101011000", 344, 13]
["101100000", 352, 5]
["101110111", 375, 34]
["101111110", 382, 13]
["110000000", 384, 2]
["110000010", 386, 13]
["110001001", 393, 34]
["110100000", 416, 5]
["110101000", 424, 13]
["110101010", 426, 34]
["110101011", 427, 55]
["110101100", 428, 21]
["110110000", 432, 8]
["111000000", 448, 3]
["111000100", 452, 13]
["111011101", 477, 34]
["111100001", 481, 21]
["111100100", 484, 13]
["111110000", 496, 5]
["111110001", 497, 21]
["111111010", 506, 13]
["111111110", 510, 8]
["1000000000", 512, 1]
["1000000100", 516, 8]
["1000001100", 524, 13]
["1000011110", 542, 21]
["1000100000", 544, 5]
["1000101101", 557, 55]
["1000111000", 568, 13]
["1000111110", 574, 21]
["1001000110", 582, 34]
["1001100011", 611, 55]
["1001111000", 632, 13]
["1010000000", 640, 3]
["1010100000", 672, 8]
["1010101000", 680, 21]
["1010101010", 682, 55]
["1010101011", 683, 89]
["1010101100", 684, 34]
["1010110000", 688, 13]
["1011000000", 704, 5]
["1011010001", 721, 55]
["1011100111", 743, 55]
["1011101110", 750, 34]
["1011111100", 764, 13]
["1100000000", 768, 2]
["1100000100", 772, 13]
["1100010010", 786, 34]
["1100011001", 793, 55]
["1100101111", 815, 55]
["1101000000", 832, 5]
["1101010000", 848, 13]
["1101010100", 852, 34]
["1101010101", 853, 89]
["1101010110", 854, 55]
["1101011000", 856, 21]
["1101100000", 864, 8]
["1110000000", 896, 3]
["1110001000", 904, 13]
["1110011101", 925, 55]
["1110111010", 954, 34]
["1111000010", 962, 21]
["1111001000", 968, 13]
["1111010011", 979, 55]
["1111100000", 992, 5]
["1111100010", 994, 21]
["1111110100", 1012, 13]
["1111111100", 1020, 8]
["10000000000", 1024, 1]
["10000001000", 1032, 8]
["10000010001", 1041, 34]
["10000011000", 1048, 13]
["10000111100", 1084, 21]
["10001000000", 1088, 5]
["10001000001", 1089, 34]
["10001011010", 1114, 55]
["10001110000", 1136, 13]
["10001111001", 1145, 55]
["10001111100", 1148, 21]
["10010001100", 1164, 34]
["10010011001", 1177, 89]
["10010111011", 1211, 89]
["10011000110", 1222, 55]
["10011001001", 1225, 89]
["10011100101", 1253, 89]
["10011110000", 1264, 13]
["10011110001", 1265, 55]
["10100000000", 1280, 3]
["10100010111", 1303, 89]
["10100111001", 1337, 89]
["10101000000", 1344, 8]
["10101010000", 1360, 21]
["10101010100", 1364, 55]
["10101010101", 1365, 144]
["10101010110", 1366, 89]
["10101011000", 1368, 34]
["10101100000", 1376, 13]
["10110000000", 1408, 5]
["10110100010", 1442, 55]
["10111001110", 1486, 55]
["10111011100", 1500, 34]
["10111111000", 1528, 13]
["11000000000", 1536, 2]
["11000001000", 1544, 13]
["11000100100", 1572, 34]
["11000110010", 1586, 55]
["11001011110", 1630, 55]
["11010000000", 1664, 5]
["11010100000", 1696, 13]
["11010101000", 1704, 34]
["11010101010", 1706, 89]
["11010101011", 1707, 144]
["11010101100", 1708, 55]
["11010110000", 1712, 21]
["11011000000", 1728, 8]
["11011000111", 1735, 89]
["11011101001", 1769, 89]
["11100000000", 1792, 3]
["11100001111", 1807, 55]
["11100010000", 1808, 13]
["11100011011", 1819, 89]
["11100110111", 1847, 89]
["11100111010", 1850, 55]
["11101000101", 1861, 89]
["11101100111", 1895, 89]
["11101110100", 1908, 34]
["11110000100", 1924, 21]
["11110000111", 1927, 55]
["11110010000", 1936, 13]
["11110100110", 1958, 55]
["11110111111", 1983, 34]
["11111000000", 1984, 5]
["11111000100", 1988, 21]
["11111101000", 2024, 13]
["11111101111", 2031, 34]
["11111111000", 2040, 8]
["100000000000", 2048, 1]
[0, 1, 1, 2, 1, 3, 2, 3, 1, 3, 5, 2, 5, 3, 1, 5, 3, 8, 5, 2, 5, 8, 3, 5, 1, 5, 3, 8, 13, 5, 2, 5, 13, 8, 3, 5, 1, 5, 13, 13, 3, 8, 21, 13, 5, 2, 5, 13, 21, 8, 3, 13, 13, 5, 1, 8, 13, 5, 13, 13, 3, 8, 21, 34, 13, 5, 13, 2, 13, 5, 13, 34, 21, 8, 3, 13, 13, 5, 13, 8, 1, 8, 13, 21, 5, 13, 21, 34, 13, 3, 8, 21, 55, 34, 13, 5, 34, 13, 2, 13, 34, 5, 13, 34, 55, 21, 8, 3, 13, 34, 21, 13, 5, 21, 13, 8, 1, 8, 13, 21, 5, 55, 13, 21, 34, 55, 13, 3, 8, 21, 55, 89, 34, 13, 5, 55, 55, 34, 13, 2, 13, 34, 55, 55, 5, 13, 34, 89, 55, 21, 8, 3, 13, 55, 34, 21, 13, 55, 5, 21, 13, 8, 1, 8, 34, 13, 21, 5, 34, 55, 13, 55, 21, 34, 89, 89, 55, 89, 89, 13, 55, 3, 89, 89, 8, 21, 55, 144, 89, 34, 13, 5, 55, 55, 34, 13, 2, 13, 34, 55, 55, 5, 13, 34, 89, 144, 55, 21, 8, 89, 89, 3, 55, 13, 89, 89, 55, 89, 89, 34, 21, 55, 13, 55, 34, 5, 21, 13, 34, 8, 1]

151227(7)

Ruby


Stern's diatomic series(4)

行列計算で第10 ** i 項を求めてみた。

require 'matrix'

def f(n)
  return 0 if n == 0
  m = Matrix[[1, 0]]
  m0 = Matrix[[1, 0], [1, 1]]
  m1 = Matrix[[1, 1], [0, 1]]
  n.to_s(2).reverse[0..-2].split('').each{|i| i == '0' ? m *= m0 : m *= m1}
  (m * Vector.elements([1, 1]))[0]
end

N = 100
(0..N).each{|i| p f(10 ** i)}

出力結果
1
3
7
11
43
127
191
1249
897
7623
7271
36101
162479
321915
403997
1428803
1019509
13232201
29665503
59010673
263945319
877154567
882461433
2068567705
4889467859
6969180039
57539447579
9545488487
27629678579
491924028681
2641828456999
551814328661
9518520281087
76008367287467
14497531592309
89868846310031
167023767280505
401012137269069
8536871687545369
5931707331916187
15620163071382969
58899765166917481
53646346833206219
828887435629116181
12823339025800471
424811550937738855
2142134094734576905
16213529205765305645
35694548337522558469
34283540197659980805
167927140074779758557
55508545802688081973
3420451812716595700019
2084027626838769738713
10696737461713119087177
427963341425485262121
774670184077579627033
445629866784443406007399
186471319227195801088697
100674871745425361036985
3427675049219134575645829
5411185428596107328826019
45110210722424583185811951
43436699252913012286550441
1545381824748948524692533
44899288194235199014247585
637125751478667888817264231
2741861658253913280529410883
29718873729572521254305161251
28483864178631057120464624053
22743512746898390445779864145
457247983401091451023370786977
92523430260118438222851390637
2121709433600513041861939409627
5875424096809548348864872231569
255785172523906364039557317601
127394007314155015888372696490331
2824512104586002656400078669743
133806205886326102797035065947639
60776020251835811032335506834225
18171246114696785468962484612603
180498811690939710161811129828349
688075889883964708600568395883245
636562142013468494548927303032127
7079099242592420520930093488105033
31565782860647308656707292391833433
57635595001356009589855499325452753
8279978659327419426136873370033333
1137036023619063445725816001170693533
191794186015950462182905469351791379
502566457900428930690622486589112521
193916620755198348034591204689815265
3844123224578864729406107641124256757
42057507250665157452669839419795067943
29317840951747508976907189460899449969
4875634841711556643720389156319548655
80005068202151126517030597092659821391
7101467528110727786345123463816688288883
54756963417839791699419065067332594925647
11743648481942154673428818386997923945131
82251501217045168774956398214266294624247