- Sub calc(ByVal n As Long, Optional types As String = "全部", Optional ByRef factorial As String, Optional ByRef sumfactorial As String)
- Dim numlen As Long, last As Long, i As Long, j As Long, temp As Long, msg As String
- msg = Mid("#01", InStr(" 全部双数单数", types) / 2, 1)
- Dim fact() As Long, sumfact() As Long, s() As String
- numlen = ((Log(8 * Atn(1) * n) / 2 + n * (Log(n) - 1)) / Log(10) + 1) / 5
- On Error Resume Next
- ReDim fact(numlen)
- ReDim sumfact(numlen)
- fact(0) = 1
- For i = 1 To n
- last = 0
- For j = 0 To numlen
- temp = fact(j) * i + last
- fact(j) = temp Mod 100000
- last = temp / 100000
- Next
- If i Mod 2 Like msg Then
- last = 0
- For j = 0 To numlen
- temp = sumfact(j) + fact(j) + last
- sumfact(j) = temp Mod 100000
- last = temp / 100000
- Next
- End If
- Next
- ReDim s(numlen)
- For i = 0 To numlen
- s(i) = Format(fact(numlen - i), "00000")
- Next
- If numlen > 0 Then
- s(1) = Val(s(0) & s(1))
- s(0) = ""
- Else
- s(0) = Val(s(0))
- End If
- factorial = Join(s, "")
- ReDim s(numlen)
- For i = 0 To numlen
- s(i) = Format(sumfact(numlen - i), "00000")
- Next
- If numlen > 0 Then
- s(1) = Val(s(0) & s(1))
- s(0) = ""
- Else
- s(0) = Val(s(0))
- End If
- sumfactrial = Join(s, "")
- Debug.Print n & "!=" & factorial
- Debug.Print "Σn!(n=1 to " & n & "," & types & ")=" & sumfactrial
- End Sub
- Sub Getit()
- calc 1000, "单数"
- calc 2000, "双数"
- calc 3000
- End Sub
运行结果:
1000!=402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146
674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573
630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Σn!(n=1 to 1000,单数)=4023876636747448278379236073645026551685505634683187414845082034647444347210990932218324316259371504473273853453164339563265155316017894834916253041171075569356746909294049876245847650952426941074058220619959287179720850164369559389190355508312347925585499461142988807453122960741802648767430828329992727398589393069285118793397317981213323242314477979940701636345021577380181131254761940132488764798462137596309607367123080140713420405046134765704275390878843062227910126509081155331347263978671788209494751093685747736893337417584624487777246894940230058239468095717470971683619989388249383099062593932739242607601035972673627824792720713424676185695246010251358455180497551001854766978777665668079212228801782203113916636225980824766750518252354725330173643198133061779161010979288851686182419935085302579646700719813313749731966395435433489014583233143142862139867870616486223650793599852597216590582166705566389650176613247690302362830149508241394406206058109865741389269492943783260896232281106
198853363447282127680947387800829681423939923080526751424956729452550209436879273952259067117367657935014832084455598212063775312759258752136642318040162971149196310529056507807320343072060335371958721562438864508296151335820773773059044548753041567989577105565837570165249742104255957529949730684243675676185081965402191938670335806955235825500822726046949336530783400174318226824987834231724074968884154391209192899981914646769747947499085235821163670311111359880153290494501733185987210074153846822889162695451855660346389926828084479173417251083764384295086676908539142473989691407147197245992055170262892577421407950703164807951787963467924661420274555743090217262258410160972625133034727784749917298795624017297841979038944074891168151833303305822003754708612464043383459098637546782169214218375601886031092297471652566618318777046168787745898738021024494715986146259842214387083295928975375267696501984653972611160396030486146924768943854777185981827879022785432717240245313749837685614028682265688291962682196786160
07940745349751768140890787864481947858395692181089613948910684089402889445876002079003602451492217587821906075711943160577806151531077046266402383575620536311806737527317120254830835160631481993813626205810385310855917496124480918733606414767237892335837442682208831156591710336991230039476145197559497101808954951696205671659254482476418200345343483540471232437772666974556097669549028475384355821469853365656812080717059467174900130106741333352464382215582126531632217228551564309080006450788729187610131268709401146867497898583379392681647
2000!=331627509245063324117539338057632403828111720810578039457193543706038077905600822400273230859732592255402352941225834109258084817415293796131386633526343688905634058556163940605117252571870647856393544045405243957467037674108722970434684158343752431580877533645127487995436859247408032408946561507233250652797655757179671536718689359056112815871601717232657156110004214012420433842573712700175883547796899921283528996665853405579854903657366350133386550401172012152635488038268152152246920995206031564418565480675946497051552288205234899995726450814065536678969532101467622671332026831552205194494461618239275204026529722631502574752048296064750927394165856283531779574482876314596450373991327334177263608852490093506621610144459709412707821313732563831572302019949914958316470942774473870327985549674298608839376326824152478834387469595829257740574539837501585815468136294217949972399813599481016556563876034227312912250384709872909626622461971076605931550201895135583165357871492290916779049702247094611937607785165
110684432255905648736266530377384650390788049524600712549402614566072254136302754913671583406097831074945282217490781347709693241556111339828051358600690594619965257310741177081519922564516778571458056602185654760952377463016679422488444485798349801548032620829890965857381751888619376692828279888453584639896594213952984465291092009103710046149449915828588050761867924946385180879874512891408019340074625920057098729578599643650655895612410231018690556060308783629110505601245908998383410799367902052076858669183477906558544700148692656924631933337612428097420067172846361939249698628468719993450393889367270487127172734561700354867477509102955523953547941107421913301356819541091941462766417542161587625262858089801222443890248677182054959415751991701271767571787495861619665931878855141835782092601482071777331735396034304969082070589958701381980813035590160762908388574561288217698136182483576739218303118414719133986892842344000779246691209766731651433494437473235636572048844478331854941693030124531676232745367879322
847473824485092283139952509732505979127031047683601481191102229253372697693823670057565612400290576043852852902937606479533458179666123839605262549107186663869354766108455046198102084050635827676526589492393249519685954171672419329530683673495544004586359838161043059449826627530605423580755894108278880427825951089880635410567917950974017780688782869810219010900148352061688883720250310665922068601483649830532782088263536558043605686781284169217133047141176312175895777122637584753123517230990549829210134687304205898014418063875382664169897704237759406280877253702265426530580862379301422675821187143502918637636340300173251818262076039747369595202642632364145446851113427202150458383851010136941313034856221916631623892632765815355011276307825059969158824533457435437863683173730673296589355199694458236873508830278657700879749889992343555566240682834763784685183844973648873952475103224222110561201295829657191368108693825475764118886879346725191246192151144738836269591643672490071653428228152661247800463922544945170
363723627940757784542091048305461656190622174286981602973324046520201992813854882681951007282869701070737500927666487502174775372742351508748246720274170031581122805896178122160747437947510950620938556674581252518376682157712807861499255876132352950422346387878954850885764466136290394127665978044202092281337987115900896264878942413210454925003566670632909441579372986743421470507213588932019580723064781498429522595589012754823971773325722910325760929790733299545056388362640474650245080809469116072632087494143973000704111418595530278827357654819182002449697761111346318195282761590964189790958117338627206088910432945244978535147014112442143055486089639578378347325323595763291438925288393986256273242862775563140463830389168421633113445636309571965978466338551492316196335675355138403425804162919837822266909521770153175338730284610841886554138329171951332117895728541662084823682817932512931237521541926970269703299477643823386483008871530373405666383868294088487730721762268849023084934661194260180272613802108005078
215741006054848201347859578102770707780655512772540501674332396066253216415004808772403047611929032210154385353138685538486425570790795341176519571188683739880683895792743749683498142923292196309777090143936843655333359307820181312993455024206044563340578606962471961505603394899523321800434359967256623927196435402872055475012079854331970674797313126813523653744085662263206768837585132782896252333284341812977624697079543436003492343159239674763638912115285406657783646213911247447051255226342701239527018127045491648045932248108858674600952306793175967755581011679940005249806303763141344412269037034987355799916009259248075052485541568266281760815446308305406677412630124441864204108373119093130001154470560277773724378067188899770851056727276781247198832857695844217588895160467868204810010047816462358220838532488134270834079868486632162720208823308727819085378845469131556021728873121907393965209260229101477527080930865364979858554010577450279289814603688431821508637246216967872282169347370599286277112447690920902
988320166830170273420259765671709863311216349502171264426827119650264054228231759630874475301847194095524263411498469508073390080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Σn!(n=1 to 2000,双数)=3316275921934356001613571229231295625781074749771384718906885882431364466733524844394857050516829908592073561671626818503837445835578065708893258773840713046258909816965694646247951954587230567560566252077299628165085723245889551732386279172845526443161105522315950480411751344322843512093824151170783043208853167822055860471267819749197312988580458127179111268006268704730133204839222172726523179034237563557244211691528280734920313933609634340371055801579084708548760332534843961423534653062668838289920188906597397776125190885792761284157480066039860062114807857247928392416375789298182322909972264273708312033335856299605707644907206016011730417100845821537642313013937655784916961482108429778270964311624657550476628716596589451409263077305022639730639464204414892048237977041897767798168726364899119211161073934318401655511082778592750800018527224601770776469231072525511785661623441495139819285759580884792863571559634657361203225984165998075120248230671371306676766490098341286616194609941263
335830568525751074084080396481176404718977949269306932889215729934636946092891659431174589901487188943695850029555805769373092299415807249219156831662669344678394761227457704230520052231630951934972321941827449506419714659874088623307410122861128828005836164396095268337248602705234623253992330682734765305279527919090494800174701855592665104330018092438962617130068933551528474025475361432842729594242868753782717620788340587381210153852547986642829145143508274173267343142213574435462407685617912577837309659415134176043138703735653847402718941610062718649225568804752729877283112402642739681095602366927224302280242614578320944929398788994578978827617374112851423447084166543545617499308827266895687321136015241323618338301700340238290304171743558211274561168948497017212549345993928824906996779289197141016196570423633949823680741192637806225692079387673315112795427524979016458313569628345031153757382016117549703494695593283886716758840443866598806617500444899935682742756897848752303326727435268015693252976067065754
181528480261706797219748084492314382577192766519026948129465352483706553246111404001065226810088658068493584727591371207439471354853921473754014598102340748508881650524289181467668580199575313914222806703010675364666087263782944287357365228690784223642900097152486160378795101015021255009547414934188388086581279418729943329521072130363492613659313120762282227073779446824689625418204989256396971850862595067437854177725336582696873175234213529739734400732737286474767092781411548984022369064719967741605361821349001229054078136720884619422965664644810235558691098443844494028694873955362105163919036798242624385683543853637903425062449343486121837072495538959782145429143218924347247686566142242278646913019690309094858773280326514923403842519548999998160739698813710756631108740535651127137391520612366372380471568167042499204058066890857267072852167767609346092838340066560332252050220357064908309322214682741186687574458928590960174394822547423463020366455207909513729300578238262181826319536948146354855744922399893603
748264242028647942455308619129155367327024635102315463142829282200818162840908713029661029745586904183415264046596022034509607001896503875643737996078880506042410924850422564879377847501507790700363885520242417296843348619708018688303113739900630700402081011568931021817885162334641234583157366894736752384231576728417646823164275545907667706410818237149458720970729571417861741460997314453797977926124780793536161560390024163476766562623172868598639591315029379091327649484542325677521889107216786169574987780244378406024097170472649810667226403616093561234202339699325226397459789176905328739189220479577887136321209883194306066189170566563066356305579278795381941067142180583240682197647682751554029296144971966132895378819022252187706218036828932846212669227657194573806084202408721406233673978748318110153194140614145078600703526051701427044563725488474404144663696320326215932076646870643134102773178060866023370127609316604591913591064769421962619998120133654104926141949868387023646159983043702975608115673428212184
614353549152603691599914090321426458851568911740633458613535961834617067058265316510276606769523964552630903613501632691977035253144809783044783289885242234987962854842289671525573314131743524041099936126767711582022042259741841681864058646838454028209638956512918809816162896994165289231971045263403020710000994742207722843414207327071960199361749360135183274010608447640385326039698956430140246485390829182509509710923771833232606491507428059941761511302973453975449016013972130401828436841429375843601011688370295861498480424048154153902563466358042095208846440299002846876034370426244466205596944343088357268221663532369385565249169117921538762083978519950611958299471726865691024942680972774364338723147092526567302490347602573022584816802324041353104108204836621806289441121215333269998873086085721118786231354332502043060368890356048840895333733807549902810621325610418933746298359351993089786065787573813712985968784915536544873466030014703373844493403111751677477275296753854004031791037635013676735391044875901980
85065246191796389923161091372287947096618885775602972611522120144594630708367875059928711275137695388643019756554979476300254061322252302675697920409695879349826992330954215237976568068597827731201189681821651894134160137492524437731360170293879794599430403654731084898853570887118489619438108451653297600459310469495006905550522982706791101232211613014553901601955143697887992858991432654654096258054073171312586687298940222901825516737081875755905297960171746653425377761769631437595551292889420922246586191924745173161145180216276452744425978829561806579574493525224286111540683170398678287832378807194192324395637905688944437945541028258666
3000!=414935960343785408555686709308661217095111919493180991768946765769755856512353195008600076521780034200751846353836171184957508711140459077945534021610683396116210379041991775220626633901796828051647196974959688424577287660971030037261110953402411271188331577388153284389297376130211063129303744014853787254460796102904294910497938881207625116251329170046416689621175902035751754889806535778689152850937824699946746991908320935110683638242870635222685443392137751504885881040368188090992929124971419005089389944047153514731545315874415099601742678750874603679741170723687472771439889206836916185036081984597180937844535239585053776110865111623631459208861085574508745139453054362137118981508471920944263742032750299963337849440147756714146808242074999147148783596697206389546705899601785694802633887671128710680049508274007171248194763864013691935443541203127866014347925499591435301206531034066255032310207383515021951031486736123387393950965514621593490157899499440723110044269248381401414554878727380458560235615832
043179459530558306933512468907212461514684853087240312679670891135489827334753757568993651763964247817334625108790157434373989204922670983170339321071763439833524445760404765654004144146994799843545545977993867028394285134131889131656953108485135250940061477740470073314065417944280044366919036854692708572717016480115120574524486079687737848036606530091098156390912941106337156215409038001350586716242623339024341666287165212285902745688335048979268693697928783768948414365738664369550754739648822562221833800146007611968592176032348084674552163304117380043311442259262436905587829149079738857587845857398286953903023838372658824276543064375177578972150450713618017300516284244762942274857556278287634987671952813689135839188244992847415916831303340321999467520829148857643458638323135452050759559120620672732969513861229946586075273178844524498653481641692388448890614958509343734428898148844273218171312725338915345065811438233812058753798086050808897617538828962529336337504545491686002672295912255288545844826866553243
130113537548124095612376860780077007079395418489071494673778544075283078729881039129451219298647937034512574364455814597571408227059863251653529065845711235852702119334529811055683988098840949803461850780252730387367840421694272379804643042500450308066370327600163419214428057088024308505678921086469774551395391198386361671903002781463801369324823327715951805961930695042378360826205708872092979297974294045768773383198774446855442948003217410566894237105450288704196119150727390000316420144742133232938716180295556140046028674004228853898546503280284285151222960287957418016218232360983209714410470125330673148961532367887349845539496043970503523477662113959145192704221222314269986920874635209806862243548133761943951319428681134865315622281732149764817053818461553265961875302964786011608722636404439222576019264946109168851510131439455743983031925571541621514424691223705191490978618494361509631099336395945617965933968519586053386311763241470668422571923947425317264795597499932832472798078964707530540141940902006097
126747531863655254032127577578539306975300565952082074574994718981444537722482078884433351185456015688537081828928952183001396543769472864187766657628153897373401594105436814354373461342446920670700827824236455574508825566701572427528103171416406314106813843309240272813189608848130406652261695528256371838624649442956888593938467267236941994755713205460182634257310291153535327288081827730215967870884372934121170845115806299676972666016636352769599690215021221049542595672785931855162684471003744346204220035353912037383930954206950214862073906531909108213443342514978962842361985716747738481260974430550362508663547207309712980846971965377227798931602005607250580075124074944481633922143981184927482819786551784785477491987141384850422903839540905708420381372771356677035650410817805206950321362335216927405310153409217618340788177356746467490716166006532304389026397860655090053098724354456893156013299424071122950154537715210519424455127953649712148722221937292891598330017423979775925305013188378834948842322225073188
163994389356278171028754325887945588577427803907171663812579037981491484455268858716299310145107332155547732645760359161842987083232375688379171350730060267382922946870810307519460203764381386771073337793125822573564355345771628040304809257859097472334139329040722398600054482692961103936401275395398993974200219252689286225649592791363695469832473144940942974942132087169636628129638461913781146092107010330121199342649416664491303108984935353664018312826831125065783864259065371970109072764293305347512973367169294150478709492417781215349794994497323584451302100297203599935765077305636969505399908912520048101200905696331443681791942479635633891024862507733672493998017234516270488501494383437358264400534814749574213288736484795895538438363782756014333777988161268544624064941344161191089526533267616276602211308792116659243794965348380302360642949819855410143115666017395185394260086731985645866846354427301800222926075897671921983675295283651587155218876983179990058531215186910377766768836542912474198260994345356715
294128238376121155556862104545838103551544049537184707263632185327754865018110026213312284298609261121595730660239320774767428009094626743221388052906430677112769640137359062510510506235682413176515330307753589751345651474241674015174707208391018699899932793649108926879247397058141528555439659542226039190592658256373446764063595258389669815119839598866036837530420179903281859455694125505190663028548695333776829846000318080938221300381022143870574611813042519619164059704560351831217081516586473565565405329284117486289570828567923000535258463770612805914520355463899321278759063496278379758713525886182132522635770383962027373853249083536804979900857015224833034395251973446533429946525652360967428345505237397339023742618088717992837222853662934392408957629131544421065736092054818421393658938677155428424772751001667343577430936389484445647643771840738743794710078671510704495546576262815661375507307637680806000318442962339778082333113597875771369830128175716256716832872815119373366857894371090977485812228681268241
223172726811849752078634531074953317082601531594402536453655244535879520347452134292489166445048043553522819777219819718690548841768963987827047820661269214725486182478596264342791902745034529947693679972172851654655917994717890678856872785744700842897237782347630807409195129662383464278396538650173246658501921440916946303712655811977007746825620351983187829135910139978173036351737647067143839928102912244608483205189832483488551310255397215831849316536707322731729954317507754756347481273209566554318518795869781724917217008657680989083278308382404377379744553425256887128988555131809670124978594542906096273705906599707841727384207216055767890605651676945654901203881657758619392309243629833895498572798745233980904998584674848503995091093988342104246931136178759786118030961087743627649904146551675455076136657259149933761143402437629102903841358885313125911325448492258960071848511693901939854346494154837823383025313687759900054437223329014625681840959988305225215853285998339903365954189326966801632658993582346632
470803240204297913574257554985493728961920916507946719971214398325815539458351256480108898868870568827112226287340357724184248032311730273384422206040156092420795694932049438094024655625303033288241653020380060412884443848841891293939859717656702115016113401211693555358649848029415632382794475763150426857342698631165628009321645781654104118990783962107586051450915265284224336472308804690884264125251265847291340591951717542911526220022297569869279591246209643630570521330992164222584376518891936303298512232829508061262005735655542131835558382893181387959409623037927772303444234323415616035585905023244752745026308698314141253963717544136118972691586507167223080834352955784010872360273470011187861462331854394310570584837704748060350045568850206027302222563976307389399850249781551826799169941641455403299098131905066543581566576915290689081862041384440914563552912420649017174364304734551913759229149532829881518087400767334869976953228714507915844487039804057376735557778735939378915771479560233407084563923141701183
92555234618119775915673385955919265270624063734277760215846511035368057963320714896942663358570375305829676608224208465464558556667889222627619990263961792637457851652540918756608543859661221944248720424960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Σn!(n=1 to 3000,全部)=4150743184653239001488280131836276730109873877465927697964268552017743414798506113162352503475070605344053379207386600197989020961084253734443123549788317718825439479927654213025461305871944146391942418142705500345431273039326925270916602957109679652978790476547505063078196466472497173464394851880353478595679602014908194219834534428219580489882754810365519772044490355618989141840918081270908364879846216112884055275202199858012909765252420172501346668994341543714906156451221098973247065464484137293992024048910531992328273280690615495584247160651234527277867687045026696967007204941768129713636743885106322696895596543975798006211580033685960487177672712990829642504309958738883671081858300155679026896216693941373738953048303079135595905579128822677241856301094927062933316224138183826350367524905275394605419750436321289889102151186980335721226223893685564345797132957377446561669636601106097149631012249863609054316020808673873460410854906311119536237657090080402484881081888818818320679422401
608243093025345956827754425276088424170068009584117556036626026399837275300503837769180437040089368440062634255990701585089532993294109174924487266556663972487341467061631167298779906450891369795641713362517867791625641818258710099125962333291258025861420076956548187538051102782334834815379664950345403991426445202232441002563759965071204642036677606000880690506904055478623712926908026111035335450569086658168641327551765823362260658233870862422150743108553989582545477166067727436014260653731976557493012389299694499900210093341550762796577568548352561567648540914681088873149537961142275733819472402160351812684225770798845161753109733847278396693896890173649450644300852511675027272194912223751749731887905328050572232000694291529482916460411125522734764922459691517794442702171676249207292299303651174214339453753786178987032742955640774145178965813846619547703406971609827479015358115690095678884521586189883970685266770681615026081262438378314723912229005276400113671793777217523537768740107685372049274396974535118
599292079650848436423130912076734467768552545970335289391290460926262281506693384980174815245514653710355789043050125917008792687270148621741823928789994246008784021224210099252010866409186291312386658173411978306483304547223434822945548685072979301118172302576788597265437799069807226806479618895955195562052899423502710947937855327676434843018438166616489171387213715113248311805895877497029941032395622049397221815590735096187525183393221337301110386110554678154096418547252553454082865911824962507004709157771037964368455405757943324469474984857754922909761437316330274334265044692589290733599559247209447028997757830645331652218236763973560997270044580883607669216901877783637617315423337025542794619440465209339571422817176018433630920836845413680002581939518473994980985930980635106639788826730436716945340170959758938652762133643765020611419075619711680624480011297822575712424785136348727399446117615782896364954729211908096943753870002085785685571589874039591479428705843566407360690703666187226212549796930511810
819835118863838108941810335096853269918120102438640561582784341665117073414307568039642591760736235701761332520044855795004714341107562575204116999836937374088831913341895150458376831644465227749916221468966396093652432727400001354719286598244437544428683424925895319101723127878672967522641497883550418730657718542364193705502108155004670210509419729402136524011702366512013821099473631810228645373471259629208954112310970353546887190480229418318798337579604164521004033869757180891461827685281749590947515576757223139483771710964178872701495323372078980161434788300336480582753370315971410959127763278360715042724394781847038084007975329988401700675999097160932569455492964598555628210564369894135852656747053245190150401498867011393897525677694105973624294779397824550283826849750537074646797315540476386168639370303154534889077879573823967838042029991683446809428419078910582256736084958219473414555471385854625526174063213410473571755298731595619578128757350012065947065477801449397714797418982173155635749720537286038
022112957995407708057684404517527454821613258563553520799561390510392776554970857660343273167249205130609854342797097403275849003871059041223264053942002226688645167543282294762133062702177574142260731038992682340744499892785303194705665772218451405943977704816592591203162045340602973492989666636479839072270263406843007009351437311275558641589672902943640937607170064449445560408889312362429953955061321764802332889713327045332377431749178490148645123661981257439194209113937581585192596311385042802034434419618366656643113825083375084904866338685534477186210692439022867577155193507207068825477847985847918512940758218728229246214145596149511546487426139416045367221966538994692578289770324854538073578628297927610599765121630012603340737664211496935484080385218133338194613245453001450240571165416951179757592036008058720900034965332256657387334193357948823935331563283823251780539428150844759516865033684314070941028923251492477849656276788029774677224993979286760998249572163243938976236016320952600656715416850108003
424873775291782836231413409203146949937749278629368469922571230552098881125709948117386712675553984141193363488087272537399863330694688457301136410509150965744896504348811927240286345846275856008792702852250646091132152156832328731440634938461009229148547131986639643087008544684681096481332340328766711308680888923632060272211207036096097572648085522840703760535832384108468699750437557331009184493725104589484007904808156574526858407641171467655145264719537305897169108601538017878906363715190399745968079830802608840879977871439257696438657686849490431228770370517152496966706071874655427593071654050243942624599447471136761962490066520021719360070837259264433843036267869883870187659420331969512432163396123150210765464072738547712372538821017078364314031226073562402104058872179861312707681134830179438750865267420051270047700854622467743985622473850879423705892834012007167140992669179909459651190473835568564883903602047497745957105768725678168942178025212071935379623162830356197491665441575293610801998558731510707
195082213917792949735303672146850311863247714345573849903266089187849277695275150677847077862379667555073257010104178876532640257716698625657839258753983396967339526237142262530228876068064783549840769630323376468168818044211841283314544042304365601090501958090192853133686625753218499722952950106796799946316586233044694669961851433415938507169500065326063384464278406834652997199918387892722117142567074192269703294308217928954608519575822702605598354690783803414940526617222612575891049451515912546996360026263864697868267411243918421737548057963337727196410714145942335877758182134520239136181986553592617994361848107153884754928196848936207131326091210152293332187843536364222352751720463392187939627924012761436812279399105448663854519139834522876437316080467674157750084900214129901984191787026584790211908848000624389347163956536045063323056875555424953263203463810649792542184765106302363445151153922010911299839277911860040893947788992227747829028949385120744550454477031299302401161273336445474635505583739602900
320643733634667942143350782904653697371397398391858453713651388295748853728018471567157440082278707012532173958561293745402475367040658774989323379661308015638797947617936825436238456085906300864749270074442103522528274417871439735094585751185779470257877592691240618973348388384069757426891613718085622930385008205827031984414390518150126657650201264606958795059789778205951269547117073475124982929081957321276370165865888672317295133396820450454858350046455436876228063844264102870170136803344905356553839008944985080732104389728378420660622590793463592594499581690647732326874452988667490881679586293107048878214108820793270828539873907526833513214099945670906845429515791672729790340757965403677865334562945861109531795582566063483954097380688101213245556307223137246955314674452576210940748348876138172521083330243752695055087027965655667642415235670059613137778259361247180671079269486504549233733792970822394296312361694757577504424769334962968198566702212997857978357287636013290289968292032559225687287647356912826
3386188690870301995003942450615224046177117282040595212337956062094432018623779376569867446928751801376351410837656665442972167147996171985630385306847612679178278674809668294566453109508393852710531293826952493214689541558352984233805697178957680419990935517493580707432780441230424632829229716105041261594083452244993017506583870024332476723942239942275630968576224669066665048909559644342959549925429103815747664276051837088059701997477107440425021981051740905844053995746925171844037841823522441611867345433208379741347009406659919379208878761799827677548449306681397552694707427117631406144007450882969740049818323455858551317207197201589704858224388374914095841726938767482243085025897244690463595978336569707778625455613570273121541638995145894561079999213500076101248781500642979091198044736325729107144579768273776743716439557581557253878204647391176582851167312182026188795156620056856503340092247479478684738621107994804323593105039052556442336528920420940313