Skip to content

Instantly share code, notes, and snippets.

@pjt33
Last active February 22, 2022 19:09
Show Gist options
  • Save pjt33/c62f15e9536d779cb1c7507eef0d6e18 to your computer and use it in GitHub Desktop.
Save pjt33/c62f15e9536d779cb1c7507eef0d6e18 to your computer and use it in GitHub Desktop.
B-file for A074881
from collections import Counter
from math import gcd
def phi(n):
# Not exactly over-optimised...
rv = 1
for p in range(2, n + 1):
if n == 1:
break
if n % p == 0:
rv *= p - 1
n //= p
while n % p == 0:
rv *= p
n //= p
return rv
def A074881_tbl(n):
# This seems to be a good trade-off between the memory-heavy @lru_cache top-down approach
# and the slow cache-free recursion.
distribs = [Counter({1: 1}) for i in range(n+1)]
yield 1
yield 1
for k in range(2, n+1):
for m in range(n, k-1, -1):
w_correction = 1
j = m
for i in range(1, m//k + 1):
for _ in range(k):
w_correction *= j
j -= 1
w_correction //= i * k
for L, sigma in distribs[m - i*k].items():
# phi(L) -> phi(lcm(k, L)): need to identify the new primes
lcm_correction = k // gcd(k, L)
new_primes = lcm_correction
while True:
overlap = gcd(new_primes, L)
if overlap == 1:
break
new_primes //= overlap
old_primes = lcm_correction // new_primes
distribs[m][L * lcm_correction] += sigma * w_correction // (old_primes * phi(new_primes))
yield sum(distribs[k].values())
if __name__ == "__main__":
for n, A in enumerate(A074881_tbl(200)):
print(n, A)
1 1
2 2
3 5
4 17
5 67
6 362
7 2039
8 14170
9 109694
10 976412
11 8921002
12 101134244
13 1104940280
14 13914013024
15 191754490412
16 2824047042632
17 41304021782824
18 708492417746000
19 11629404776897384
20 222093818836736752
21 4351196253952132832
22 88481681599705382144
23 1781763397966126421200
24 42190151665464205075424
25 956908712238075257232032
26 23117422218274804908596032
27 581214969002218704675469664
28 15657510127173393397719767360
29 403629369328997490909031577344
30 12300315196298613725276589009152
31 341247036804192637660207005482432
32 10428195655352831227287257251782784
33 323970127809910069663884589861911680
34 10336069145213512550653045556158118144
35 343165585525444717897816566094142288512
36 12496469532105409245965970702682088306432
37 417247396888494373927269398676693283541504
38 14908511673172600243174779916581383389788160
39 548709742430089873387107955109481982438049024
40 21823570298175451539640519636917409734919142912
41 811252318147320544248149406570666293892726764032
42 34622220605889248880368985968465015234625611777024
43 1346650028690536921025640458782133460828353060288000
44 57507432859696405884590222701656986152707126270505984
45 2554215758638482156604581922044619677470859239988887552
46 111629329456975817624420908580956912067710059201480568832
47 4757577213833402959898752579574668875335642602540972063744
48 233160796980501749304989314985862032376937733149437988505600
49 10644843736789083938483292802869544138259111761193636559693824
50 522958823925787188796587014459796344731564012077949010398892032
51 25476687883540903407626121714982199872028727511511912604661164032
52 1292241820795494298008072821586184814978910944859607210385089163264
53 62263165492530139898743365143078981837755037857801835554040005058560
54 3381678022320356853093258384841203258706041805045312388139625259270144
55 177445270231169753037866138619954400708149805171287902128172030926180352
56 9937643500903318637674908017392869471951168466530895501310284335656722432
57 543060290168262931505867563931281578445338120899602346480337026609241104384
58 30036984322961083545884698520777392075215617484692878592748046088815749447680
59 1614090403207812934820776115997360698676350017249283697159529318597318627385344
60 102501033007228852719850756405865207939819762638915030455247645613106825722150912
61 5732936502057564140770171606062488361988728465408969501926612518198493891994386432
62 340153313923939355640581367511946608043171500751899401442331062699109638769147183104
63 21159646938397043074085043925830659617956236545964829737245220689850775204643664936960
64 1332054998923071580425206227065327117949047189794560413363526319970505907919485304602624
65 83199964010836704108437394600505470174414572565961505358185058474060606827835218860736512
66 5610417217696199929555693093851930644866134134819458326512390609780159025548210925649068032
67 346061123981587022878886614284660283787156371165987859183153351220961685007102563151757082624
68 22964127070422134217378016626783394225735709920166699983022088464450471325818256304942086553600
69 1520752306272168453103839604248925840910326019648999315957198908847758271720137391661322678697984
70 108037946821668706635233662453974602303972001946077969564209665541547662734304797195548806364004352
71 7072831865857766144603351849445476884909481397261183723697526151344915537455468459950256583739768832
72 530145005054695885681853361254279906702583555352744603304967812637262496368624577827572126748210233344
73 35524227047989244622110919367860658999066882535790222511181626355847535308215440077144748488672493568000
74 2517566262369807477313515931991452278917181097051857208191279936570925855686280384887326678054743132340224
75 187417085589266232538839688799688605386874649782108298422911454703545908183091787126117261611466846362796032
76 13999004822345001865597713238612529740201482681857517228433187489613113993602338477244197198800319417064620032
77 1034180237036365150167775837111769283978640473810046710312934686510182182685257896818382345068357669838194212864
78 82345788171087552300854638064505495767004990513833004992997804651980911595483970761632049458851555929118353653760
79 6007277949606627767609104682060950575873974082423753929492235765715992767970570471450653448811701724708584541650944
80 491192606901747475814987073282452028936433565705115933816511565534991823212068119981234917304384613161205439622807552
81 38659412847188716320591822939039842882182795368993372197722266594417574135552412104350522814248618965637213587604242432
82 3049081635808506584135339910518597949821516986360097621043710570621660731753035808407098528779556764462181537128182185984
83 232891879752125398923244680074405350109055512591070906018642974247012034573612771774394277743613987784490589122957926727680
84 20695827430028567841865785977064819566932152362171648649105379383884086201616329028918873440334851024293555286269691553644544
85 1686279263185085500461579833676115061227290170073720541495303716366056025971779730968095732427428835830614587779463829428109312
86 140063906698135093739623157353074671062275681192714981407531784840367721972529485373387469895037953296209377354043820366398226432
87 11734746087500186087905867426930701340505555415882112108951268602483346694143104342809967500152047964679107087313325113659651784704
88 1030036505795172165301055644819331669625794017237666485280802160012647506629570167988767351648589518359245701665547293354462030069760
89 84617397790597088325066833024253062281121570277888225807637855164808618493353067764427195851960821438373375622086004459325917677748224
90 8104960369929246244049590946447569691495565404865325559250915577201997261874465538222245111637667267637089841571991396754041138799706112
91 710489842083061393167203242490183179679900711503252323064497537324629482330971779194176281779800556506672160364482977329098167525186732032
92 64331512368405422506450142356104582463240903139546026955417400611471214606956196675264256406929343285763093531019953693405184316061698228224
93 5775269276142396630530467112176614726177791781403930609128517303036105533414108254388520623177188949228976902635338121881720265041492783923200
94 522813520684842542984452082076199569829269359591497714830263444768315973603928355455853030280205578215556842427019399121965823398804653797801984
95 47636913533678983544822302815991265225295964426963529899965816684857310183632568904475357605972161457046629781499371630081024539764598396684337152
96 4758148808228205852688158931734375536755510578715316892102016431617961361614214695772453370305247495496704256573910403439330793001852228074924408832
97 428406866899165776355335305282192389538258620368143494848407786904736079182815982445401406024052321561575281145159046713512787492900021161073724882944
98 41475521536809711333688566148722870006973533967134419971486733760364910025893134685820409439462791734641428127590708013585345950341488914792075126374400
99 4054745601361972334988256612373063951410519607831612393299572248793061333072897024473694767582322366703292209153663032324437398957906943229038127034138624
100 413096738922115886673487750560514875399915462334120159629654978072188487745219642765367671931907627406311502374260173062774423451765922096834877368966316032
101 38769317972811983214037204294314620089919640390307710735965129742948246755923991446442600069575899153491508121948985054618111862142643692501352250617765036032
102 4037475120104137563564065806431034679915784339491050424130668557486034621431895468868027815925645461239191491175904948212524201882982606996478253808100220862464
103 384175624579454115012284663780846013175920875957720410052706032585360528382437947747462168804956680056914386926925081145808406431503366289186263051777113807912960
104 39949601696162393604808832911510639344380366360707497816220948984262552732783271561975213919891200535165692873658719638941195420650532158818723755949331147856543744
105 4314402232518971821379857077159201479403961944134017359040200480676673759821328804020369310021182680668557222962743038102173087660367715435158274327715990798180810752
106 443069085143770620285415627669381653559660529148909859403362025985082442039704294419752220058185898114259854603489509541437460981056020347020045506456272588586910482432
107 43976373053546139819773979197911669010043021148348670929829926775288907622728144708227446105948440411536864807226332675975213120678631457470492677921136151919365753667584
108 4946991175722855426192051200406070124521469968866739916507679421157353201356496442786333661846975753646810546979880632391112641721201919364023920936989397144502812729671680
109 498767989862891557647812859101344774553683917360017065850377696373254232104561486416174550463392919449556554576750137779809783877644921637905176430961376164517990882024095744
110 55849528356342781436623999076570621234138726895184624391734998603711693039509986352289478081123068892289196329753165823111084310386733226102960170938485155778393230208728563712
111 6011439885128131517891233156743884044066638159715912938009715885610300888067621342528416912764426911547096649584034197663453570653137049150926326745288856376021270931001344786432
112 687531966460777130325785369681269291949386769147093987033397733646845693769412584723844168838055579620665017223734395504702995339341988644607768563771940522995027103588663431266304
113 72019758015108071930582408179055768083100606390939231458408465798676712965101768413111502696015090454846532332216547133408114632792882213673264672434392105366578232724830756074946560
114 8404774478055623168845758833260335455693992459314499180026733868002701967323505640633743880606601683530886962678878926425004406708496779680663551279609245956691960699455678232683085824
115 928101467978186572854385316114650197735506493453862226273982112533054059047338340065122306294292824029091329187071007116994191101988845885251744736939375667200933020992882601278897651712
116 106248244959876723251185950290209438765060845463994853389826516045443118551119444939844971979784620099748482116048020943964506713226812240642766540422221606951909692850209113690951261356032
117 12283031283344202358955834634812067404965473215290691944059064307991866098228605500825791710802239534289464850655561203235850878726183005844918926087860352519128361152188764535738621518413824
118 1401694151259214022710933658978756523143663646764510104970269676581590242889985034654818237165007813984013033315932382527571037718367583915785409733172881711401472724620624724714773426261196800
119 159854291584690483039539314922796125340241436135955676813315682344399613443900417780910924581563726255164578623625482888065333268998391461212397972926084266708955270657164491253403588603605417984
120 20876117885359030963662097775573035941466492687084045784879533741923015144385904255353673526474847245507481033371935757036341702648315321616870348541649013588788184320327698198946645413616735485952
121 2393923602916447743905271772464903831207032825768203097840773269212309813385654031096920560962607810214406999455932181999426687710633329294936217524592675221295400824192965109214633698103608666488832
122 282710737003273791942356404994646260103371574706419745743032075099373797094954205799274861603935063786014670039034440246993421444697487372548674209824987629050332051924956107948549674498469918402412544
123 33552738017687847903202060872847489505556410002301021576137737689408554644658613680961132524144801696448114755978215488059430380737509215756622077502793815150800789981638028139669665827944859345669324800
124 4089012968215898210603866623146061212888318469755238348754207053711581875917965986339775169069292870069133258552969533130904824278062828822482009720258745733090294385937140697536113785084682611833673089024
125 492217364292077937758015152708322703234999135263939231917751110606717127973093337923224429202153869744971785943482549768544862074947551408624624184393669749746055112111997031468865846005217436016446151852032
126 65652855096869496595630598480240856986806468964826478163836424524679441782687491808234169056554615551210775094441619044344754456753344597802439820197404063549028212440727112297475435343895552546888627133612032
127 7781270471460476742182533906922966497372277936888158642096538451440412277586006633220097863006900118985857842082592367454505274637693272631320549466856370877436717938612814331976713379270648759757979373549912064
128 992337517184709985585021913504445838648071978387670034781505465269139778987703878270748375264961263539136564339009414190879775109947668039384775289529772779170067097261890388087520101810715628926846159619788636160
129 124053349234335474803691670448743358178979151388015062966681569532780811271690288845111076449444976505840803343023363199503337463673004862174719143915538944320427164126267714091066173084084594018911717027934365548544
130 16370750925780348480323931928886291754530493980989460783918423608876054904464677669546970581792277295636427014069857255546779995258735659059031680539961791499262641760017224660737305276362671768257290463856035419389952
131 1995809207431024070904213126823117532431853184958813253931652896551280358811036377214959400846863524252367683233145563076224586259954324731076441791719708804012925175288294328681747092952532736511640079909049795117842432
132 278390749256445951323165396056046329228920586876836178958381974297084080680787169240704531965134243650135037065758909186936119903938099054765547381765746972692800504095913207588579714360664025404376734695942981048214749184
133 35583082011119312763351043360411385136692384775118531473022650215430495884568423484528028055049291241538202606221988866542463703054824435449732010678313616785118864567838203715649497876539401583138339746637042165191729479680
134 4629079117476520746812987992343061845261194888698128665372050355322970700015297310475541980994678768596745048887079048670948141040323687734500661552087373117721450557807634535184150550045184525323681264397993603015528041938944
135 635995984875780765402289057258064904455064736410984777092180522327907191678432046832737240902472527598075787690266308716247753578213264528981993109764231910014924315288833663384748513175664933592325963634227518160793453159514112
136 86721526025645537509034404999670227565702538308405527768904580044382880829490311069347238531983986623729518913092036459889646740112609211929838655630135910590585992220709409517714536496760079510809939440152526827190370919547666432
137 11047670233911356659228038884344083770213932649938213730767410526076855704722444168822161907452711578586628681331341446772813622595476202429074657201491144806706064671158158614285401385154874404086026904242052012757281306680863227904
138 1558413811742820903235793006530578501041691882787062576628956009350908562772872570675783728920754267183613785005172541320740293599770658964098670508459383324154108769088764642622598433284388573573953833421430492559182362550788801167360
139 201229701833778904256011181399718784175253481861075405282443463406383335019432433356049467098314773228428336144752892547583569704007154420444170305098058584063292975014836155145626581098263387432812593330759892676248913289874563005415424
140 29584894062386534072050654150038378477605375162424777996831244619425416514431906143088732050364854745363682273234199668336062530696565570587449626280008629694882062323872148785951744069745352058995036749656134040151858686351053866047373312
141 4051087621131314977319575980223571807809610230082855962756498696153712160784994785884697034064249948725564668028656994803614567558223088555804384722078154064254366083040599209396928067999909059372738876726820844223394859188338022327917740032
142 559322238824687545817461657219579659522397265936772455595507254894299075845953877708101620843618825593008983384421999735538317747563484916368856685770676974357701200449270939783942836376328043759940515881983383375265399746336579741788273639424
143 76319361773812426067692608325667366883461248457137564957540499820990769704688981698494400839260791703082594272980518883390243021810119892516844648765465546971343546107129033515120918120774778482495889639696669341885549476596710247466159990374400
144 11652628899301286439702544480007151661319735940421941375806520509124249471830646971054175392513931162128752209291465542415155859415622376677854959637917273189672994251526105190118771994435337656140431112790854845261683819001862079321472534507945984
145 1630203749428680322656374708816594484038392967722716062649651141566952515255889644926508867321616670789043295037818147676865772144845744271693990869257528892680404132828884621876519887887494786060517703754569609886872071176754611461397038552687050752
146 231454997102441106875327641082856251478541859905927598188048958140684555709305236940179977554462973811396848504684807296411830842121983154449794237950288367427925274934702945858384919260583055429181224089839875753535293876723116952416483949385542008832
147 33843380260940880332429574397211655646114390126658701307626327029174319040398683627525122769777818214817804312236561701476540629472127402008060178956983394321875368188078915405715820928137260102712407539663535335466106353009644692406859097945394217222144
148 4934959294377420784666446695972282830611995788575828327141437076802754129078282953812173915648019026357742603569537686398564990655395871149038310156120460151021857923069289724138524537295025238057044910537713068508450246426837965866127224320305585664819200
149 685006402076325016416030284751434471098076802048796278998850580487982318289877905552639169161552431039833718868241597336943324459674857375178977065695285659354440927851950094026995925383811923878026862172522253175236174941156942130816048936521808615177191424
150 109269298063863676980525306588066340885191609693287953951797001037352510268840819773452909629970357672180311072772064989958984409442582921520851200605032037456493444715985266071373396582674372731466738627302582547832792773749179890302282933599750417997765804032
151 15395906513243810578409214283998467781617232800607855688414806689630813026594313847175202955699915749220391834401145284898169118070643593854821084029992263984940073492547298862846956832904671590029068974894695632372491800032252461522944049781300404616034917548032
152 2344685070286311161586661881174659450367397235360717349666621397807513243196342296530986351487011660519247485403684564864051996637637832154175245501768705290100026887858515137898603107108132029143941030420175390405898875562717040714055128457822032585717755794161664
153 355417883206547285650458925912951974246476070297175698291551815570632786093809102384307518897008639375202630925382401503075208775676071279146420178741317868283134577944401174345484309946112688852403558108418824893890243721848630882627306161955451371681438038868623360
154 55462578876023157450964054122673161462069032275188040002383976393368442247849790124133531902926885879471485791602362361904810888140354282908911818818447699614837246940374335079431771117302649476710200075072615031477883077867581613676451733705567222400831945274078265344
155 8330049877291717465867212026466756806166093093123590485712175765109027622375138185478708860173331736788408998583584709582445200066000683012174921785850771417040315143335542759306016780432354471185774198492776950012462881588544745833618029043551007481554234750813341745152
156 1369324539727452924756460884652934208029071945177520917036908227198073228964182833547733282891656745731644648335998541374509399056701074361215510892959582934836984608808293502424841680662307587268677313713636535193797100414060442656752458234722697894653797588913952424722432
157 200419643719372952466105633785654697424395232056567661947622005704338976769126297588839730827622205656680122363841346868711144964986569881034908373640328732699196371142179320825885982884601905820686554373342244104677174029146695804417626769137111395901740211366543814016630784
158 30683611663284900479110919981609083853945534209174340294688374359340795419180662532759004342632018500182688682173682810504258947101280992370492792056268314469764523955245762192733811509637012759127513067674799580490696602370984312828009290452621096521113201975244752626049351680
159 4706041048212972735542438446766784150845060889721412280416191278772288947738772806905478313150464699475313094917798733779431208955178029346569475547981198367671781032786105930515158584742504202897198632994843849832223439735470274569951256067879215017687280332026006999651418374144
160 780087987475259250759717139226969606043614828309022147574937767538860836684162960553783587444304120381689250395490705423676088968744263376258629997869558910369737241384210487673272567485198684788316733984656157277149196297769359159628150889430561266522267126672722872076358240960512
161 120893740025440268910549873896601939053917982517375737969026459219452302786434452602405416338614588993338914041216347371103176051167611063468497098090596395515131647895577591823738705844410469532381428106133461441243477683883471197393864234939039288507034166133149370967297896776466432
162 20231386891730253578878513143174901782294495771416410452027799956247193164216311739988074610392098953735402122891914958362413438045828773928618843792761895151895540144996330936216163913031348059403978354108036876428379573135634064945146308789310214241849206546116762470094693122917269504
163 3073311201989445662143225208850241761966091863933890882459964321672733114141444944309622779769170066464958988700321780768480743887629344274341883671209344653564518246842605035127914172989661996541998630970553552487198289331230690816743380114656944732912265630118175414910830646457962332160
164 497423162824286789213138485668188756382705448912771856989616540379043089334234004234933228283467755099029720119506892829969335737233363084428639817335847304641316362356790526494753249723707763251808012469511842660612125896761333622010554013311049596586530603512855008284262150795381937537024
165 83869663138186755450695016725550574187347457290330456866433909373761470536509787192888477814054504661602008044764072332565387488615925213503258673527125032051460084917459462410084829401107942615545240990237809969652360624071783954201607057195347831898789679472536227016674565633897975525670912
166 13545122058256261258422844202009445179562591723371218243405626620549138180103607057483866193331475287760599479295406964302817840601970436432118594071783045186456708419115260699765020852637842678408796571949433751961959125738403441966904014922737584345446514376477359629402262258564553045056684032
167 2108859801009147609823220457416688702431675013635305140065237156757174758646398672711665125744040362277489587105243670213512879586737519268092307656527597508686945697862115705990802266721082332325976467243255041838879432946710696740507221356967849802428212609745473697436702070327464593954411905024
168 383206993202599193508832567285068287534737987264787782913302615429095448172093715288875077866528160794751170514336107061202037613732968047865252717085311742078513373114832652661472137163052693215407224838163028568088154753731231007120420601874453001951493160027296989591317620383914127010306195456000
169 61299680247750539498897155617529489105829692118766836632661237695444463143367905652896608671303113327742608849750816047389746147666571967650026441015828060954528389551750498626686370283177445669235778619060116862973061219324740564184326962229476845980405242056834689496228012427913809760179583119785984
170 10609979387138739608374568418749684634211194171237566677465000293018286717128221151168565900365751256745198666617528439138939207266590531986082936391119934614948906426558612796043151240002363093937581301072419097755349192821988604006849999349869993373109030960194113190199178496395432375489210375892631552
171 1797529294849012533801804779663558791828037125088370886473302843190371691822046534851452717013717078267279626039872596840262920204312342360391594344066852571314450857982610525737233260833851420808645157042178559609013412588933878912741405705797277194388545673432013878107437165573721426791338290377582968832
172 305987925805313265727495624356232051986409090076387996853153972409576098846880625588029908185902810493110470380690467970619769815078138673204228781263236100159537835601119112538637423591484208192347901071103553780473093893767373408579665650409987711807667064838105257017730495137185949227874289306206935711744
173 49209960584200003350828168011311171559996462353905044360277621872527418576269455574426934506373909163074620911050186304853462835975671809602751075840757133879289075413152302656976034200720829437345012590707410934029582717813945122704605876941080821020433173282529775331986468328986475003107628940612953807257600
174 8775106136774728458836275590602361932290159955853022784120879731932662860590053333915282307786994289253531650111730436078267397711020237854515828625004109453237127237441505287306311099377261296334616533696400329456336932441206842409614534854883434600521069871597329385343448255946692235818048992704433388282445824
175 1524519945744818319664930482529167328508714447813984228360067171189348680937674867184188564492853142166417339696559486411162937490999652413527595766069401467002605078208208702401909888154181346479858379878254396602256331186062098879390114170815554336673382755253353091564994474487038841440042425834283127640038572032
176 273115246342221866352597097441594526109477267389318125613721065435479079140478787956441032204024587032924831330289638183158028628199225930664301759481040421672490272721596497874631307286657511207286323335557745709180821473547037600238129066913344124451124136029002844686071978843245992927162995950566498721511120044032
177 47066958806669975352743606846715589785371737971802727566584648589968329002010458537427158253388901718382442086400413537489958943169858633511520234898113755267514526709604362795196187378792337334368966883011831866464230422919494928217394263388704218274760766308396169193214798176480629887046543320549520861600911158411264
178 8126600414659194407163808162887326034920342230685701632885325022760048401655008926708316902087338500420919724487453804822404038581333605867695624911818159480292665311131110624698359126343633685305060256059478409651904221152019275931880957810285646621792827734583489465719627748913720970688048122892784201737640945972674560
179 1350816622085717918261021828823623925770420472895731709510936317780220243017237196224169995976388257990369630283691535567951616632332703103464407959800680209380205694121387542676729232941010020780636625520785906152010353092919521590198001146731502459744584669221021140642500622894736926516152911005341260591974878448812294144
180 267201920861950272987646235273052800585680523186560109526949777113658057100162562048780361994587378522669884257189902345022009677788515807230524856859876508332482703745147399589294300581603384334445799077444205142092397502711349995815087182919101508998919973482926932667105184999907135284383778077524308660905274644163935076352
181 45309620276731033109578757884209341574555257972696880422783903803728042149014963937004472936368847707301854218695730700957035457600369639847583331604422943348642117685379914424417380880548924783080413963808870206537306424634105349796980434738801067013475427331402626384731938494379618904211731347891832131416430059573863285522432
182 8366956118133465637281988327796221692232456501328522653535662492687449655114828445247954360592835893425425054071419039539634409843303096934590692817024310547644299447741216855543990929105937492325773393452958137310555177608513483030003411656514052593626103572530730746950208498070068543505251030319154487389527369888172311402512384
183 1487110384783640249331250646401131198446071680491779746916345456678076553509243819902322675648838631534360997972424685653769237636407164487081227916621713242750120132333618950800402661287387418419817376051270223484014347020936991178063377283681723846424188135857122782215676580563918434724037822669328064411838126435524988771164487680
184 274238652201954063832038759139412725384833912549889141718326287920300874906224732153935731271477755459327224990292913609680567462210519193617817834089394987631344365088141958828436313490587132892467047761197002202846994533076740875111411199274979159145682559238292429867873333206485743221606481895681626815034792371628678662561772601344
185 48993938051475257005009714526858913269713402784641402229236977354003302526415245086242239133802584043320794111090851213199890116200181871772572776976237712166580482170188081751534626940768198211022659944907633583512852178815024415890137178983884184217226992340382660711083565379670809945468072975438579514032013360630823916001697476902912
186 9368913354618641547469233770269764274424991451498752328945727190481360265269906096321172518959004557783822264692367973019343211839132837606199836438653528361979658345518838017955824991046714570928068182069992581542885286285335382606498392895644917888344338237096251776482757773719600090533134393857516678149163144337459647747610464256786432
187 1674650007798692948331744658002761928127598756892957248820984255677173512964485097060717616701612075803802670497027192336399603625278592724534470497369505006563187475131476630739076670753637707082989434090145385239576297526080339575281034165620762328613887191957842063871693794580309073670697451064276044996341696961217424427781399955954991104
188 311634465024527219732324623293907363348866500253853750040019691136540575459509127516272932238211148597700277398250994441236855393592945020983740608454066015102596032136527050367176065384190465130435011119722139918693972596014546973402432628424572119427080144352107626373803473889132528180562886123244646963503127920679300515187361693102464040960
189 59684858754454639438073904268654403568911044652609286991972060721304607982876249697018678605213914928102406844879363903541382542710393306239438797225183348451667052528446321574326045134870710619390419613002830595567921623464519763414848239249902883277363507314636426307243630294465651593421530108352469566627427501113108409688835824155151380250624
190 11508017791923529541017853408659277731632333662379865377842478230675748982799317515650893799299569268833259454744488580269533512277193265692009141311395477737479449550640051045660320901567570704344296390267432756118298837731346642667173832500162171873171182042047100276215768248181522400959320639622269651274320110368737154894970753521345210993344512
191 2058989762365159430352991625509249846451357028354913010054989219466837450281235721104253236982170028653245924487434478857546749231477123084814557318028790656834612771924837322056901475285240821243939568372344608092319339193011013721341518317930315015398772714592663491109476909954288073567964900690604243916115650742922389053311125488277290550434988032
192 415874026844826577710099606789083077519529396611558448654904813296503393238499158911532218148986330397616840599808964386018494068665104891560899056385397334532122145558953563683847776155869974854933177336057695016865826571818268659830121159183886576795685546098846847039768517070239085619812153540092046750541014876390755455937448145811853158131773210624
193 74770955395906958679959597956951473516844288361337170979896698083666020213830352943502243044540479063136494285986325522239764707927491622897868987109887897027447991648214207450602607762234802173663697624977802694214093839636852790660495902153185595138077400767128382140571899810642118782834101628294450271717663481684148715346214548603026093192743852441600
194 14070292891349783553262483277937024666935521274035959533310471788535949670302795175414289873206963297541348370221149659662805359589901804274982829566216037306190367911717477264114316934144052610971722102869444044125600927509913583675159154362188728301180950320481319581771123533852871163833123331565832880994704924770492423524037717238812641175240468263337984
195 2802652904269348459984489623041338826999473911276927808134625787966434200867887009097885604845028020392366355716726210039520539977450782205489071205219059853564055632729868039248194057389669332407762424813965885141035489699629708276560362456763715328485531151185486192960792534396610050614294145779343370489110758006050006366861123900137632847239616302889828352
196 559630622113987746543743599711880255282496741860093481082107714743601913357066154781465804562129697647741483116432826118921029452620110783866190148084027942067596770617780411701760146530981672413103030333604782407476749130732365981255168298455547852547368001186219658701681994660440421171415402098127917330431505073388844635888353003832355087656031525624277368832
197 103237429622161179020205790503610523471712325056154462668214653137923774547991564958043353349938576785712514694796513518404321881680763682447636778258204861777419081469008100213545936455655091106165062255287822290627414662701519935363403163801695449567923052308706343487745949716009393699464043870516695231088898147257951036195929455140654465369113452209144116281344
198 21500350661140705152369527172379486992537081062810018089532204431774644541808988746409245927449610120699012416639582978706192530647298466791488788151441230544496650008105837490107933570493287220078674863083931789229518213677666992481665971081682074010090338308462920422200618071005920613367050311679521060044923288445367608600770966674750637694241213736419369943040000
199 3996350416931232900334590653665014753852431363694803516786345547612146320738143223562575040788118491120709582224016229586504141097245687619831293086301896502974243077493925800097577635428900567036592589742738144129295812599372577658889581222259931006792877350425354858881266750870063934733905489082423021329391797973652911812838985719344789346873713279913875138332852224
200 829608495084153128965488864583774999117633230752007187549819636345016250563801906416602530353046877925740397888544833971901217568305069591913969087595225335603737642023509880313399272235001440042024128098031341218151491403311395032854527453020699343473361705574367326995159042729751112396187448148663100070150072304010890510220682633626531376813865545925716407517584556032
@pjt33
Copy link
Author

pjt33 commented Feb 22, 2022

The code in the second revision calculates up to n=200 in about 8GB of RAM and 2 minutes with pypy3 on my desktop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment