c、c++求a的n次方(a是个位0~9)

来源:互联网 发布:苹果淘宝打不开 编辑:程序博客网 时间:2024/04/30 20:18

首先介绍一下基础的,关于数据类型:


其中,整型的数据大小为4字节,32比特位,能表示的数的范围是 -2147483648 ~ +2147483647;而2的30次方就高达 1073741824,用正常计算方法得到的结果如下



故要想得到更高位的a的n次方,要自己写一个新的数据类型,我想到的是int型数组,长度为n,每个数组元素用来储存结果的一位。

最后把每个元素输出就好了


处理这个问题最难的是进位


我们先根据基本的数学乘法运算

若果假设每次中间相加项都小于10,则可以得到如下结果:


(忽略我丑的一比的字体)


然而实际上相加项有可能大于10,这时,我们就加入一个判断语句,如果大于10就进位。(这步讲道理还是挺难的,方法是我自己想的,可能比较麻烦,注释有写,仔细看看就好)

最终代码如下:

#include<iostream>#include<time.h>#include<math.h>//authorsummer_awn//time2017/6/18//计算a的n次方#define a 2#define n 10000using namespace std;void main() {clock_t start, end;start = clock();int length = n * log10(a)+1;//结果的位数lengthint *result = (int*)malloc(sizeof(int)*length);//我新建了一个数据类型,为整型数组,长度定为lengthmemset(result, 0, sizeof(int)*length);//先把数组都初始化为零result[0] = a;//必要的首位初始化int *result2 = (int*)malloc(sizeof(int)*length);//拷贝数组for (int i = 2; i <= n; ++i){memcpy(result2, result, sizeof(int)*length);//拷贝出上一次的数组int templength = i * log10(a) + 1;//结果的位数lengthfor (int j = 0; j < templength; ++j) {if (j == 0) {//第一位result[j] = a*result2[j] % 10;}else if (j == i - 1) {//最后一位result[j] = a*result2[j - 1] / 10 + result[j - 1]/10;//把这一位在正常的计算结果基础上加result[j - 1] / 10result[j - 1] = result[j - 1] % 10;//把前一位变成之前的前一位除10取余}else {//中间的某一位result[j] = a*result2[j - 1] / 10 + a*result2[j] % 10 + result[j - 1] / 10;//把这一位在正常的计算结果基础上加result[j - 1] / 10result[j - 1] = result[j - 1] % 10;//把前一位变成之前的前一位取余数}}}for (int i = length-1; i >= 0; --i)//打印出来{cout << result[i];}free(result);//释放result内存free(result2);//释放result2内存cout << endl<<"位数为"<<length<<endl;end = clock();float time = (float)(end - start) / 1000;cout << "time is" << time << "s" << endl;system("pause");}



经测试,计算2的10000次幂需要0.235s,

结果为(共3011位):

19950631168807583848837421626835850838234968318861924548520089498529438830221946631919961684036194597899331129423209124271556491349413781117593785932096323957855730046793794526765246551266059895520550086918193311542508608460618104685509074866089624888090489894838009253941633257850621568309473902556912388065225096643874441046759871626985453222868538161694315775629640762836880760732228535091641476183956381458969463899410840960536267821064621427333394036525565649530603142680234969400335934316651459297773279665775606172582031407994198179607378245683762280037302885487251900834464581454650557929601414833921615734588139257095379769119277800826957735674444123062018757836325502728323789270710373802866393031428133241401624195671690574061419654342324638801248856147305207431992259611796250130992860241708340807605932320161268492288496255841312844061536738951487114256315111089745514203313820202931640957596464756010405845841566072044962867016515061920631004186422275908670900574606417856951911456055068251250406007519842261898059237118054444788072906395242548339221982707404473162376760846613033778706039803413197133493654622700563169937455508241780972810983291314403571877524768509857276937926433221599399876886660808368837838027643282775172273657572744784112294389733810861607423253291974813120197604178281965697475898164531258434135959862784130128185406283476649088690521047580882615823961985770122407044330583075869039319604603404973156583208672105913300903752823415539745394397715257455290510212310947321610753474825740775273986348298498340756937955646638621874569499279016572103701364433135817214311791398222983845847334440270964182851005072927748364550578634501100852987812389473928699540834346158807043959118985815145779177143619698728131459483783202081474982171858011389071228250905826817436220577475921417653715687725614904582904992461028630081535583308130101987675856234343538955409175623400844887526162643568648833519463720377293240094456246923254350400678027273837755376406726898636241037491410966718557050759098100246789880178271925953381282421954028302759408448955014676668389697996886241636313376393903373455801407636741877711055384225739499110186468219696581651485130494222369947714763069155468217682876200362777257723781365331611196811280792669481887201298643660768551639860534602297871557517947385246369446923087894265948217008051120322365496288169035739121368338393591756418733850510970271613915439590991598154654417336311656936031122249937969999226781732358023111862644575299135758175008199839236284615249881088960232244362173771618086357015468484058622329792853875623486556440536962622018963571028812361567512543338303270029097668650568557157505516727518899194129711337690149916181315171544007728650573189557450920330185304847113818315407324053319038462084036421763703911550639789000742853672196280903477974533320468368795868580237952218629120080742819551317948157624448298518461509704888027274721574688131594750409732115080498190455803416826949787141316063210686391511681774304792596709376

计算2的100000次幂25.521s

结果为(共30103位):

99900209301438450794403276433003359098042913905418169177152927386314583246425734832748733133244965040316439444555585493001879966076561765629084713542474928751988896298736710932463504273731124792658002785312410887370856052872283901645686910268506759235179146970528576446968015248323454755432502927865208069577709717411022320429763512053307779968979251166198707717857759555217200813202952046179492292592956239209657978735581586675254957973131448062492602618379413050805826860315351341787396228349908863577580621046066363721305877953223449720108084863695414018358513598580356035740218729081555665806071864612689728397946218422675793496388933572475887619591376567624111250207087048704651793963987101092003639347456180906016133778985602968635985580247614489330470522228601313770959583573194858984964045723838751707022423326334368944232973818777331532869442179361253019078689036036632831615027261399341528040711719149239033418749353944558963012921972564177172335435447515523793108922681824024527557520947046421859438628656327442313320847422215514933150027177500642288262118225493496005574573349646784832691809518959557691745096732244177404328404558821091379053756467721399766217852650571698548345624875183223832503186455054721143699341679816781702551228129780651948062954053391546574799412974991903485075443364145056316573960066933824273164340395801212802609842122475142078347122248314103040686037196401618557416564394722534649452497003145098900931622689527444287054764254722531675145211822314553883743082326422006330251375331293651643417252062561553117947386191429047614456549271284181751835313270529754953705614382395732279396730301060774568484774278321953492279838364361637647429695459066723691241363259321233356431358944652191018821238297409079163860232354509593887667364032295779939011521544480036372150691155911119960015305891077294210322304242620356934932160529275696258584458223545946452769231081973058062803265167364493437617324097533423332897302829591735692730132864233117596052304951716770331637095222569524604021433876551976440165281480223483318810975594219604764793885201985410173489859485110054692466172341431353099384059232689535865388869744270086070286355020855620295493524800507965215649196832651067441009678229519541616177175429975200098873073778762106858907709694116104380286239504453237895918707602892603934898261007748876728529181064684891438936490647845912116121933007079005370590421880128565594036990708880329668716116559612323319983109232250828661803218804394475729867620969358197843859279692501233269351946932077243355273655662482237878338880749992768316334403186044636187037897843130328438234704109443065914719283411909751852392123276743849905615636884329390394420026175309768506051329371014490863961416205560535473355699267009413752718291424072342679375650697655674759341013102253428300804090795873295442135513073020501715984242307604692097329072901416063539608805592023573768856478522400927771114891344924169956071717862984365339781808694741067511113535237115404365993108896974856588008878619749343579292462040517672460122506184040119662898726738030704983612179744846791007478463561946648292247361341151355671792917819680560537264841411283478582412591219546011844124093497829633170420025304186616949623187358606524854102222118695442237882891897120805145751413619648053697231645705649984795376571745481285974060773391587753323552156094359192751993510142222469630170137174193375049192953632951011152929518362828191918216516764559465158280489842561167481503678052678786627169996492969493770457948761466281109299820207370133303244510053853785511888034741481986651145793226849009930002367361685552941734420599253719652449979254831593437063439703718096114703230741869850350547222890271748503333683283002811329108416931504573899331839345932929949427960153097561187089189295284490742432847670062431711716227317666067961019678022045645890158995247047410011581109636337313293883568689494087593341769093878063985846473005889281759988444774861300631530687600700848372675277897773568300427789027721056838330214702797285953363321105640642639097245799496861629080196041417539357688765879924285499121517379242703432486484142474568388895418932414509875057594030132496975416969553302968802193048741635010979200362102387682751763699809776149796360967043481401241306835768799049974365962964957054595247353820003637703248949821033313329135623151698544104153170541939282347233988484535521732036880883121009439414349382822035496502815307510870986046812248029738256312449893319652962023726085865090503079933086520012316719151827657420956895131361840954121214737863110428977178614481583169658487669495548262525049612270447147122296202746823629098038774693769873589421254417923552983874798304502539097887334697326030975441564748054737327327672486527590349953363541269539004588549886835749278646152520408004901147858922890854433539969947808674716135197858385714564215831711930041179894407902683463575503398880867251278835772976264992138274365739929273022387925769242327854872012972553860719683037824830637258998084846385038283562584039173118726943814645536516900625300232175913430847552159014752991492152969443623669108332336937679931382092758700242462383312182367152367720984171877038601723085224480431763336027597331612012622483230853292889861545592214273785074109788222447295126635722255671697794097673415430172892683326350774512101678691213344656807397973727114619192999381181788275414217929268837902854309099424412605119458492379099663295502638657011148841422661629698100736527109285045794708615080940545777978643015048999586341647005282205627860088640257094324442540440342431402038120748575379990160664655209869807905893473202430506359073638215212806000418275293254852479279042357275985742095546323638309324282507115188017756337398115237619946862632705506350998512543338755946015409008620142936256737383316930823288543270014874766351188308851737752688195263601653459005561607677134536176554509744249790760639060933000284169648475940270466694684865936364254286252416448366521739225865284742449523633023053114134493323398223365516114314691319001704882268365259163997239126266161402057079967273835295974791254889614192872612597575617015926458235411519221772539196510343447936803690570038130565578663110114763131895715563365187277579919088628907654949520194749221488514170792523523942938017011494852390058443583297487692799415863846408772659017491049332388534654299792539005613115622882411471921581372101202673996486228316104302872687398403351421202995166108461931646880759445269652485700705544521525474934504348529179875121859736471904615154135825821390401721182957023275370273897877935069040449385535876505035571558728732015968850613311454771015756993754410974933741159911991149627268017180389509078030411844000755854685609769656695843256272833274164180445907278446800513607741542884127124563533836254690689364309020682167504598193217445133629138539831545606104596926045087877003041845791534782917257628106327221080358260609045724606192042375803631472001587490753616337852434622987699178878086714539288465724172235048877668038694534745888319075973552928007092414713706966470295307005070830914124927714047761934590073152062336342261281370745041625204734495974156788820038454467743889503791923445941712455102317389950303484219370880833297091081765610107086931580206950600964283520466473333611634766641063112470651738025105994092669089840466632986136488548712306599035657723276676960571870572768143949325593713680293759746041160756415999194022667942306814857233613635929036768414803583280931275068011115716150627615566071582366122685442683302747258492948758520897908509628352355279784914755637443184839934746333003309724970128084159009694551903758499457503794650191660098615027946061307947268985078496103038848460354233921754495058761571303447004158230802257866933005121268318460095102035431743237832921768659760762754124218928081388728801758131092960201507463319795614881463334126748962568837843511784775926605772127342693283823847117460837822099396466123083439521695765810654237719818995738404303159309732150599013712183997625850554354595163400551490805656273304753625289269450202261631309024207950062589313678130052221407429647561940537821824528330970215542109296386930054600119271783027615635057157354056726525241759254363718634718362920121624566620936420746055008424493472898306195060775705287548452776806612183580661302914632889322407010438875350078519971591983900846545969961971383997234958637498065824393846150491840484858191935606671259680185748778195611043352384208734177433851857356631012927574092805868400118048549941494787368829493687866372026826071987076562864367537757095603497183974055655052694252183543013489107852345177955197575164847115459284660037545584854709947374937966158410404142398757633352017955186448566322015985563419342866689125221534463487912181596227445253723142191847387705966599421812754036136604385388292018102048509177177914852560262425298024923092295621770627700276592881584739948042550677309034200434916329135886446274153184685174625801809013144773586374865282212744506618836678735450371395355632603497782099924165591116020974374914323607878793310150524170474378235535062056170175721753870617511929197156603630283023438195849465943284604829319605151248671236046256539035651733228567582109375412226742238470466647336202928248340651378144753677476718822200983896820197842167240154912533604364378474797706336579054181335230108045599585473796858647089377916593402237955370452738494354411059838879697411430510694012710656285075370398233088678198682981714151852182714936131109639840219124483234239013925538117259541532094350029548076402919827657415140429566669531773040033587015037034974248978981089394530269768782315579381589289968687663676035790553227948227576591048128352197457240223475699146502406367304928332861518750491298734579308749994880486812508029046064462235695627679648989148699242019464585213551657098871183782904371743756252826061405346119873953346775009366257467656384596295218722627774734804912339651942813537250686607820766838625654872790380204867780999917543808157898208252555662349839332174914938649662841168898746650054147482645999727520033700845425925443011903990412317527719937677998475512794480129138420343231548881379325248871720993811957221631481016702748773791618309689373487201689449032996589325119965041096536746189148615994816320408919305772386303963118582133413371100963891138365968959147153709250739984616820464264472907889765255935051365469783646031838206195605785175615049726618176490303049821385347386962122346261140430356009670425470123173604497246232874525751511987718015857428293890256508259882754951108654247042183372640230780456816514205178074181960964015134617607943627696122281261186109127668148805009509638890328777108376510519000761280584739692587687379373066647513879422173546940211576755575689701687341043424465255225689743297161527425581105034950457189317524470704103077608303655367141803887236029488728055907527111155907947569269039785196019397903117680703568019449361068506405685192906450486855356282567872257345441465655411878167177298506128740446208907185021085180250529245903598141175227203205526425977519844107424921792420390800146062259994221097171761187468458026737248013656038669099710713472558597232170275540550850820904189875348292220041789984750305195371790620015093330230238818065191824055508186721647117023075299226522280338204041133866253358150429341151439809399864163656339236206738742593427134447012427027222271975732031944894078563555116396191159859079953990836801294688107715959380849081112519380164148662501410952866809148285031239389609976591759773154327971739457625603650235879315599261708523150742478498142565646930081050619763973955917335454729175267395987901174774492177457719081694895437903145781526673896894106045883514450261306456372376876311299645766994757673406735835372187049351773202147794039725665325817316592021997529428244327781021075321605801044321210672082738761007783324265696247656210631269754915462243439780612539993138939157820085600111713197734431304129982156269850988957227781595245056404355349798558722345219917784195641066221220490390178867379979052705523024120027808647262825175250923325553787377924349159261827361512425922427258726998440141325679546404757424511261028573941934797163831871383707227824226193840210108962712816857322877642102987088955571483977434974181098496336339103977782542251794000221434858862075321226466136144875187351424944695758367447850280131930339019497387161631138008640934085292977297414628361422011205730274273095666588498849651342951882879370161474995046851851168517097581466869942436731400369923812324839206186286630374023513339077719074552242485157487261360750480209609765678620252323562730255570543867291892555716723968719916696518347369874402959423952208634813414840298389394855933272566273181941377354518915443849609664512855614767725649325169238220032297334833317263062000591920674411369132437204035780986764408946723673345499039052836824114220118869492653245313993237641005639967442736936065868512439367371553496963589704707062467430646815115255807723671293586915466771792806746031974436602356648119111753242397922716032139326909004314335725119355917857874389319108367222197495943852176828172055374339879393724206984225860020267022045023414844322314181598371332234673381859957202152129990668553185937651881228156443498428978040444742531731871982498802190561247568350531219366840911136134517403804000412814745274536875301227412262925494310084588680826271693128914142374669732156883069625962978242868284797581983823403452227087573453938971269101748351799713209229117464354550239266293854557426308404732459893743078368758640879143123192283073049753624817085798498705503143573686604535040996796853898025784779104192310525051446968852487263443653694539213721947159981566244543305627982827773495846667570189699009851101644910479936029229616451329952242714049081869480808181447654414760708349431799213476932057754937275811467994778198070449098308878024183545280955762681782215964107122165099951969619323687669599243369390186758304779513485649674966430069785481208610130290264826404023166210182586041727345019708385702227651885903931236272452320065359839076041278980076282207912461632227130519066780296442732287634600602892133160940573960035236081494878557848199236040337092439208957851009536662455380471184198340685899489340265181327419517491251925687298248779829383517102243898868347555622182148660755186284205084412408550884084994052265485357766788644446805043012859884699155016926211730495502683654983406379433415847973906669732718175671111234452127011382877331707036488435606925350128577456371660129278461941357564915082693230100635590879918314801796066648936068648755691547008606027039096400905146093605130372809849899764729342059710761043657066703696367310866167730643613331841643321040734792107756887037541932411017644880716733041762680345281279467292444529191618820953359456671584509414763015370325881092549216206024239983839396395708642683155577379235428304771690538507219399272668305672274429137526802371781759084372697807080996901926950025924210204851939538051551586632664182304521293710468402188066651652314385974980816214201480513551318654530148712982499386242721543453723918022151261158548619753989831108881963588755657935933105978959920532404396845908621932320152322576689695094153983937213087472477329444930537575776943626803283160550603532196850012071951916714260633640561790062186716046386842490672475728557640716313978246391886937896352477082321959404004508295938536515176425101293359114783379956585017661757854299668374172478388386458923199200411963909253542260741994121819501962515981370764670850224792016491740567949940249675930031299570997420265957853900106689258647188390260584175823964971095229447298741832739522922475921569436956820374777310495141288184312103174766005073286130456981418767387058355896805688120629016723897076030395497082734184840690372151798622665819295554207556956541399768142350274905946625927709860445887936755621437096487057446653198147728921772909377998349527699951450611572043941286871215387568425680366223213695080419157374690099170480398859472604862586844497623623187240853395002049892959636187394374089188885689036911289878323258926013311552609011319119625365293846439934656664902711085228344701847683915736238952397327811583993551780220761774507559291383814685265773091522905025091452411340068956610737613204845456455436102387730875943084086997827113154255134720589393394530135481352441767541313850127700241562619361696497099441569335416665909357597847759464689539235162297236734036508058861862098881236770988929447696543603246688744297401303650097702916035364265028446180461281373240060349478897077232623649275155450137317972776152722360085965987366938414676850301661035169883909955706593317132195740032510463036041962952763169728939909450912795453616275934868184558301686342806532050287291050269066437261706617784393111547371497590961161444938121067460372514526162716152129350431411241558498475740918784584101773250305532072376619339702544883354350691135777577655845511367146346292231144978095464050790267558541609542605577834064673561893985031603030466875225797083879932987691829868229706673562466479396533654545442683864043226502960288812985572421981872080402072960774961288861667732888386206099779254168221567137036673913333220865208719044730485930174667935781738308324064595850181772674476903765231787401426365021720931026192630465421127080947696823922073837974820570347931965251392213701998775439311786012381989247070476295875015162999128929330690253435754882514549484693283228982029565069033084704825177441311664647747507234778615180553434668580409871322734530818367945643644301552462741581007310693230807349015905170087536541696009989115695984547029266293740493936776852857230397546911810214692672193338465630536738465378249700495062094035066062445844126279023842427852805515992531882627862715319895671653983854289093115771224386181197249856442339075588125748592176871497213418333172897149776949821172273376698783612127884652893494706769951467858359550741215683750329378223523786651032669234498876906197941165749364183479148239839880020676499672892149834864244687377422864385630644252234612106399524181461661113915864080897404139458798490366826954881978087660219599648467711456981593675679047681120470557406023512374990122585673579651070132515622378437549947472368838210606459694800673160323813511925351483222167614424111446953611828387611157959113103624207415108263220483745404041469904796470731134283683001582473507129223311197890131797016517640330366496067495186286568360325563532056173866027493274177995242438998805813226206812979356158212027364555404144287058571318352389517424712390507589193534905702683028128107047506031817092744348065048434221341522015796267763936426981688514855452068978020362574960435841807355230924102647944364239514748558539802593670172055887679853099710432904048844675417019189122757457524021217448903266811606478379850046398641936457920821052660575039211953114575926214008306603017681201785603286502201714138116421559867026375311555548219583889053935445921805872724337498992420415428166668218463748633375227290779942089605452648638625164117180491129034513781400215068999667620807326513804277924609307622634469941591932231425650299964031343835640877666895377598574734031204770918865963555799446436882059812420404778029438039324597222075417395895966920340521616808375889216360485847899296639031073499456670278306104831308628726806610153007455216698938573837826909750260786912450770966973557449710638783790836085633247740114266045887977128433350893417521208431335491558059452175037667281368189897010757950349759311471138511775290847083826469309436638378514887987236887715347703334565702540049640399877607459512761459366946955088777963184000932299737367705185125732332301271342109370686809502643622255108728771416356017162762670401689968162872133264222683778553278878223102045397622725830149026097109311949956859508345985092588033630195518918462129909149201558382986075681907373759585733482617137947035925039721263143161921595714510817440341148479043866012842446433628573924423167674110364175577769918867199105114569020029057716991774977483594898101156505572535012425195959314834404171162222055045896716367544780428934883855002752114975262464211220107748623334762461825765971784039804366176695605670499367893503708931746175602820746790581108062803488931367687731332347211785410382892130805803693028539103847045280183440583132527441299283557327040282209019515600544497646359320650837608644739896927093811205042512669308348399999568602163561489401674425640784693501527302457494357222050094036808103211368989464430620416598783604068113312171335049605049441654728839263786078683857315153663734163125661226032359777424739403247934787407703527254365324553084382508656938643300209571207191228266892376092735244675766479817976228317092481871431894744499283290510870668662639014627546001866835836220624455538288671436214157736382448525706646534230020033860871856833870952825642318923373058274678251029052392144641175907000828628749156472129622231001498427739105852627120957026334251390692755412499258268987559130484890590836650473865690059807265126826438098000807687168897497670057472282851654309354694237012969012252000417759752780993413991494556756554157912890141418071809708180106686260003347467834921163543307417665561978654129443315796108567339072109708152476943602082310773773192559355919193615099922418518697625118219715984493964229232225869395832058495376001733882429168132570031984909428051785287828425600215492332350329418728426011096234320614855475790388028492281393971309791805624477034942995305859094150312374002134454316070495388091178705710456862116210696550230288866170603145802228843449068794048907440671645575651605963974881647445754094008919110839451262339904533647725417413313308211537589830773904025497397516208258378983849962008747496223314363545535997104728963962629146755422817356246658042120072754012739822696518025961303343297928653300636541756760033696882439263912807131230387600760399572856583333908385925342493371530704574714827435510374171470240068674191418743982304492027720096822824746408027790681047416028826134408032566075302301720319810707968930519541452393276617839058289439321461488948216959185794985022638583187044732902997904731937538035439202857063506724842450089206897129953082137473352557929825658034697795049740533295062205845869767823765473580926707538917366524015775258902023548832274806789613284668218659728697855926728268226564575779586705710977283966051015163871636153219182036527298975868077864430448966286703931884869219318391829271725545037677330768563086576006653426222545350576290308627189373643274480835589282201023749515346652628575042229509954460144288018590614433796791427174132782869759982599938190844774697752205678983953785701546091576950061286896108255193734866125682250105857523750504505036416278044066769051305648071910141322850634826657268285119330594337173738996236547155348165916300868385209054910601945967582237019115135811420715212206735219487770695216085317174775805425541380389788737160582417719042524010563706617929963958087067170838729502380572385476104950617326895879482403195694990005945937198490041045500344150140661545269946090944413914390718663090092496918124688130881262423587872048560896082340376774375094967684510580595799771890066053549033599617842451210961448770631874669102923566277711652035226470161662964880838089978876877693082208565300681539408567480413494694918707049926602100664558198328861306780214603698931744999391072312304050883424853837967422088470603853349439281475196857912921744419173863987391559089158593107504494199694258569205038912775500925600292255660282457330541643704829653515326957573119860331538617671270723229626701224806123221954888918480401493577571313023088975013485736003571343070466281571787200215787059833028564018514036741685235792023064406441594485865662469054779640865724626118340632130251262308969497136423345854193511283731321572321015776878841479867523644417112984723547631427158502934347464341272302257357920970834399104983940197899798703518377860107786672261022416844986863988742275806312725814743966767194044442900712849142862518670850923584532770914410995753576598121785237568489344296703686861812299280334334566964934607709035922318040728498276409558738544914554164806210986190904493317612889661353254130623139919714623327684872241841190888410548192708789489395906817785795889185878814260992417677538623824060024518211490351601244928939405784940554321735897795038677924486147694487346718635838172966270733414040276310298215623031421577433792946166493743615604590360602985812245760852527005700618776095827459749674053158821626959828511430063208977304731334611721429458054071788762230114625585105209307617714932786035412627198805228268641070550493643705558169458308406509604473218682668582169037848680322804798640217063156536874892904676790158647093794787623730138220263737888228275641637258726709216024340772792985656798252349464283761629187175569934546937247597446443745861235777688426473469243659095585531625715648079690340526715047607547426769600382558140343547165208345988645384325939081543929189390898961090835219925190535303983590815162892475710433547864249549807413887453860231133295913906360066945394374386907595891212887580078040829119752070952781333355502327767617833913817941051094129996804301038994750512432323314311206635987266186100847172546969087266374568584666461620932234276806846017185167024276711259130800595830536581800359912144476852865349853970138760808170209184728633513687837452512929362943731377977941681631309836888336245924882700425332753101740374018581551926631475880324503163498289440909414594357098393314540779376385338848240569645836619065803623120597600371276648309951258593102142902373060520008834157497244050288634025000287470552336885410685933890396623799137764857157720937496810557182777814296592442516667031101358206253165189069364626636133767836770015749095614449628282056908203300131212898730078552062809150358803340717462335111428380965506518182711778259641473422758858031624736482535088792762990748132426924617141695210685488182753616127869552164123832632461640346027710530522171274169098317144258427543593251937083679205248701862127085745315181970797976241563223696275303036250100574015031852417713817169169590665504804942674736966560518195277297404407824874163530870748034471263075504530187687345116312600025717657082941134471590583268594640229754890618685697155293253336791929045091813389890395312261140776041463413951202531990687206904506543173607993524347910820396954780619264532546440531245863620260161569578883264199103455197417921403960618174594673322113671130516758449707220806382493092853482577470827549398606085084863865499129122203918953793323218143449984586805572679155535252121139077233890379794274852093095046415996391960532960302927392746639062341900848822198000407543902507184301684808661570090220531582738574172679023101935660642436608340802027863922636524533955047062441089577910492989083970977158068570365278729328467719522748752013218566442842391165020057863140832666065644690235488654524369954281730543834815325251563116034389414406125996622649598787690037124124063050727130493610607775193517666843509790951124703777285270451816535562856216567619793829608372520847592031811143844040051146139903262733621461506678518800793275634864448037269632784758184534685095653653807238077367935262421455330888336797270741928388726854849773873066700075519657614315839411020424926231332427702708217100471371521679488724687411892598056239104871389750342033766733449890600521117278446705305213274253321897349788883079436260991255697413508394340617507128764452220395574551500194429962327393170914879051488128215828945799497486234334528654602749451334772673453627996847066109377076880483795678604998873272872731587851955052169469865717593728759845149940873667356996903222126190733721319849728737148239220563611582767192936875179509573147753477297800738704509692042014056416496704588490574667936821555219010950279660235902006295634266216975561662619567214034398036219182431772421104848239016221214332463945118321907370362763625569475353726194361269966453422295890067369520148703938650150870744147352202207704110700883280307315450410857217624486003245745296424458015508875355814451289181736863461165671110501511097147605443615379202075461150735291679353598037462331580354025072935854221349502396550048184562563277949304419262829413630072241507581444776889555696160257414238592744157404772176434749486631831826482100837857490802221991221446941174002708561590951048858459673923326023018437403287028085697823111824603926421290247291925352267875678978685646005705451089453741906493715588942533297034869826933866345748078010787192541297849071552766834053624072289750180164174866952266394688977998297470344148466052329775319142666384739068105416711680661312629188347648006396547623451925405804002577279508590618173260001883566775762496350845122664105575516451344702620834854807761737019236264063848313718420874772230944679786612216496898423227892487626051678986864757390122603610679246617283900162673440599032240265363435503015529832645198658813039425866177349872802318925442780161133183542761032580023939426078587569494851193007158539298431639675755313524842212748148640272973071554571094234324718569705236356722865515162656723892480806592794489530787081536066667413145982607988112787546563130077857434841896108094991194360375610753263594141434768824946925307877906932752908959099450652720719794196827418408198305674976880862364608193456236377024678150731334661979231199391171959793528331174968205005772999385664769842608155189408667763208554831598361888504483399113515051329097039900889190631333758040948869558954659126481045346214302957333759928989593296644446869006486745316618788212971941461919141329786733752837029951907061799241781402493562850065362737716363555697200032469961306652824516951672731618313938675587912782649337580400110592113722708391235184597091074806698526960809091818729785015740645445482644710786333865991131888101377463189844967459890115403342593153477400821107348184715212533745072715381310482966129790814776632697913945703573905374227697796338115683962232084025970251553047343898831093769990020930143845079440327643300335909804291390541816917715292738631458324642573483274873313324496504031643944455558549300187996607656176562908471354247492875198889629873671093246350427373112479265800278531241088737085605287228390164568691026850675923517914697052857644696801524832345475543250292786520806957770971741102232042976351205330777996897925116619870771785775955521720081320295204617949229259295623920965797873558158667525495797313144806249260261837941305080582686031535134178739622834990886357758062104606636372130587795322344972010808486369541401835851359858035603574021872908155566580607186461268972839794621842267579349638893357247588761959137656762411125020708704870465179396398710109200363934745618090601613377898560296863598558024761448933047052222860131377095958357319485898496404572383875170702242332633436894423297381877733153286944217936125301907868903603663283161502726139934152804071171914923903341874935394455896301292197256417717233543544751552379310892268182402452755752094704642185943862865632744231332084742221551493315002717750064228826211822549349600557457334964678483269180951895955769174509673224417740432840455882109137905375646772139976621785265057169854834562487518322383250318645505472114369934167981678170255122812978065194806295405339154657479941297499190348507544336414505631657396006693382427316434039580121280260984212247514207834712224831410304068603719640161855741656439472253464945249700314509890093162268952744428705476425472253167514521182231455388374308232642200633025137533129365164341725206256155311794738619142904761445654927128418175183531327052975495370561438239573227939673030106077456848477427832195349227983836436163764742969545906672369124136325932123335643135894465219101882123829740907916386023235450959388766736403229577993901152154448003637215069115591111996001530589107729421032230424262035693493216052927569625858445822354594645276923108197305806280326516736449343761732409753342333289730282959173569273013286423311759605230495171677033163709522256952460402143387655197644016528148022348331881097559421960476479388520198541017348985948511005469246617234143135309938405923268953586538886974427008607028635502085562029549352480050796521564919683265106744100967822951954161617717542997520009887307377876210685890770969411610438028623950445323789591870760289260393489826100774887672852918106468489143893649064784591211612193300707900537059042188012856559403699070888032966871611655961232331998310923225082866180321880439447572986762096935819784385927969250123326935194693207724335527365566248223787833888074999276831633440318604463618703789784313032843823470410944306591471928341190975185239212327674384990561563688432939039442002617530976850605132937101449086396141620556053547335569926700941375271829142407234267937565069765567475934101310225342830080409079587329544213551307302050171598424230760469209732907290141606353960880559202357376885647852240092777111489134492416995607171786298436533978180869474106751111353523711540436599310889697485658800887861974934357929246204051767246012250618404011966289872673803070498361217974484679100747846356194664829224736134115135567179291781968056053726484141128347858241259121954601184412409349782963317042002530418661694962318735860652485410222211869544223788289189712080514575141361964805369723164570564998479537657174548128597406077339158775332355215609435919275199351014222246963017013717419337504919295363295101115292951836282819191821651676455946515828048984256116748150367805267878662716999649296949377045794876146628110929982020737013330324451005385378551188803474148198665114579322684900993000236736168555294173442059925371965244997925483159343706343970371809611470323074186985035054722289027174850333368328300281132910841693150457389933183934593292994942796015309756118708918929528449074243284767006243171171622731766606796101967802204564589015899524704741001158110963633731329388356868949408759334176909387806398584647300588928175998844477486130063153068760070084837267527789777356830042778902772105683833021470279728595336332110564064263909724579949686162908019604141753935768876587992428549912151737924270343248648414247456838889541893241450987505759403013249697541696955330296880219304874163501097920036210238768275176369980977614979636096704348140124130683576879904997436596296495705459524735382000363770324894982103331332913562315169854410415317054193928234723398848453552173203688088312100943941434938282203549650281530751087098604681224802973825631244989331965296202372608586509050307993308652001231671915182765742095689513136184095412121473786311042897717861448158316965848766949554826252504961227044714712229620274682362909803877469376987358942125441792355298387479830450253909788733469732603097544156474805473732732767248652759034995336354126953900458854988683574927864615252040800490114785892289085443353996994780867471613519785838571456421583171193004117989440790268346357550339888086725127883577297626499213827436573992927302238792576924232785487201297255386071968303782483063725899808484638503828356258403917311872694381464553651690062530023217591343084755215901475299149215296944362366910833233693767993138209275870024246238331218236715236772098417187703860172308522448043176333602759733161201262248323085329288986154559221427378507410978822244729512663572225567169779409767341543017289268332635077451210167869121334465680739797372711461919299938118178827541421792926883790285430909942441260511945849237909966329550263865701114884142266162969810073652710928504579470861508094054577797864301504899958634164700528220562786008864025709432444254044034243140203812074857537999016066465520986980790589347320243050635907363821521280600041827529325485247927904235727598574209554632363830932428250711518801775633739811523761994686263270550635099851254333875594601540900862014293625673738331693082328854327001487476635118830885173775268819526360165345900556160767713453617655450974424979076063906093300028416964847594027046669468486593636425428625241644836652173922586528474244952363302305311413449332339822336551611431469131900170488226836525916399723912626616140205707996727383529597479125488961419287261259757561701592645823541151922177253919651034344793680369057003813056557866311011476313189571556336518727757991908862890765494952019474922148851417079252352394293801701149485239005844358329748769279941586384640877265901749104933238853465429979253900561311562288241147192158137210120267399648622831610430287268739840335142120299516610846193164688075944526965248570070554452152547493450434852917987512185973647190461515413582582139040172118295702327537027389787793506904044938553587650503557155872873201596885061331145477101575699375441097493374115991199114962726801718038950907803041184400075585468560976965669584325627283327416418044590727844680051360774154288412712456353383625469068936430902068216750459819321744513362913853983154560610459692604508787700304184579153478291725762810632722108035826060904572460619204237580363147200158749075361633785243462298769917887808671453928846572417223504887766803869453474588831907597355292800709241471370696647029530700507083091412492771404776193459007315206233634226128137074504162520473449597415678882003845446774388950379192344594171245510231738995030348421937088083329709108176561010708693158020695060096428352046647333361163476664106311247065173802510599409266908984046663298613648854871230659903565772327667696057187057276814394932559371368029375974604116075641599919402266794230681485723361363592903676841480358328093127506801111571615062761556607158236612268544268330274725849294875852089790850962835235527978491475563744318483993474633300330972497012808415900969455190375849945750379465019166009861502794606130794726898507849610303884846035423392175449505876157130344700415823080225786693300512126831846009510203543174323783292176865976076275412421892808138872880175813109296020150746331979561488146333412674896256883784351178477592660577212734269328382384711746083782209939646612308343952169576581065423771981899573840430315930973215059901371218399762585055435459516340055149080565627330475362528926945020226163130902420795006258931367813005222140742964756194053782182452833097021554210929638693005460011927178302761563505715735405672652524175925436371863471836292012162456662093642074605500842449347289830619506077570528754845277680661218358066130291463288932240701043887535007851997159198390084654596996197138399723495863749806582439384615049184048485819193560667125968018574877819561104335238420873417743385185735663101292757409280586840011804854994149478736882949368786637202682607198707656286436753775709560349718397405565505269425218354301348910785234517795519757516484711545928466003754558485470994737493796615841040414239875763335201795518644856632201598556341934286668912522153446348791218159622744525372314219184738770596659942181275403613660438538829201810204850917717791485256026242529802492309229562177062770027659288158473994804255067730903420043491632913588644627415318468517462580180901314477358637486528221274450661883667873545037139535563260349778209992416559111602097437491432360787879331015052417047437823553506205617017572175387061751192919715660363028302343819584946594328460482931960515124867123604625653903565173322856758210937541222674223847046664733620292824834065137814475367747671882220098389682019784216724015491253360436437847479770633657905418133523010804559958547379685864708937791659340223795537045273849435441105983887969741143051069401271065628507537039823308867819868298171415185218271493613110963984021912448323423901392553811725954153209435002954807640291982765741514042956666953177304003358701503703497424897898108939453026976878231557938158928996868766367603579055322794822757659104812835219745724022347569914650240636730492833286151875049129873457930874999488048681250802904606446223569562767964898914869924201946458521355165709887118378290437174375625282606140534611987395334677500936625746765638459629521872262777473480491233965194281353725068660782076683862565487279038020486778099991754380815789820825255566234983933217491493864966284116889874665005414748264599972752003370084542592544301190399041231752771993767799847551279448012913842034323154888137932524887172099381195722163148101670274877379161830968937348720168944903299658932511996504109653674618914861599481632040891930577238630396311858213341337110096389113836596895914715370925073998461682046426447290788976525593505136546978364603183820619560578517561504972661817649030304982138534738696212234626114043035600967042547012317360449724623287452575151198771801585742829389025650825988275495110865424704218337264023078045681651420517807418196096401513461760794362769612228126118610912766814880500950963889032877710837651051900076128058473969258768737937306664751387942217354694021157675557568970168734104342446525522568974329716152742558110503495045718931752447070410307760830365536714180388723602948872805590752711115590794756926903978519601939790311768070356801944936106850640568519290645048685535628256787225734544146565541187816717729850612874044620890718502108518025052924590359814117522720320552642597751984410742492179242039080014606225999422109717176118746845802673724801365603866909971071347255859723217027554055085082090418987534829222004178998475030519537179062001509333023023881806519182405550818672164711702307529922652228033820404113386625335815042934115143980939986416365633923620673874259342713444701242702722227197573203194489407856355511639619115985907995399083680129468810771595938084908111251938016414866250141095286680914828503123938960997659175977315432797173945762560365023587931559926170852315074247849814256564693008105061976397395591733545472917526739598790117477449217745771908169489543790314578152667389689410604588351445026130645637237687631129964576699475767340673583537218704935177320214779403972566532581731659202199752942824432778102107532160580104432121067208273876100778332426569624765621063126975491546224343978061253999313893915782008560011171319773443130412998215626985098895722778159524505640435534979855872234521991778419564106622122049039017886737997905270552302412002780864726282517525092332555378737792434915926182736151242592242725872699844014132567954640475742451126102857394193479716383187138370722782422619384021010896271281685732287764210298708895557148397743497418109849633633910397778254225179400022143485886207532122646613614487518735142494469575836744785028013193033901949738716163113800864093408529297729741462836142201120573027427309566658849884965134295188287937016147499504685185116851709758146686994243673140036992381232483920618628663037402351333907771907455224248515748726136075048020960976567862025232356273025557054386729189255571672396871991669651834736987440295942395220863481341484029838939485593327256627318194137735451891544384960966451285561476772564932516923822003229733483331726306200059192067441136913243720403578098676440894672367334549903905283682411422011886949265324531399323764100563996744273693606586851243936737155349696358970470706246743064681511525580772367129358691546677179280674603197443660235664811911175324239792271603213932690900431433572511935591785787438931910836722219749594385217682817205537433987939372420698422586002026702204502341484432231418159837133223467338185995720215212999066855318593765188122815644349842897804044474253173187198249880219056124756835053121936684091113613451740380400041281474527453687530122741226292549431008458868082627169312891414237466973215688306962596297824286828479758198382340345222708757345393897126910174835179971320922911746435455023926629385455742630840473245989374307836875864087914312319228307304975362481708579849870550314357368660453504099679685389802578477910419231052505144696885248726344365369453921372194715998156624454330562798282777349584666757018969900985110164491047993602922961645132995224271404908186948080818144765441476070834943179921347693205775493727581146799477819807044909830887802418354528095576268178221596410712216509995196961932368766959924336939018675830477951348564967496643006978548120861013029026482640402316621018258604172734501970838570222765188590393123627245232006535983907604127898007628220791246163222713051906678029644273228763460060289213316094057396003523608149487855784819923604033709243920895785100953666245538047118419834068589948934026518132741951749125192568729824877982938351710224389886834755562218214866075518628420508441240855088408499405226548535776678864444680504301285988469915501692621173049550268365498340637943341584797390666973271817567111123445212701138287733170703648843560692535012857745637166012927846194135756491508269323010063559087991831480179606664893606864875569154700860602703909640090514609360513037280984989976472934205971076104365706670369636731086616773064361333184164332104073479210775688703754193241101764488071673304176268034528127946729244452919161882095335945667158450941476301537032588109254921620602423998383939639570864268315557737923542830477169053850721939927266830567227442913752680237178175908437269780708099690192695002592421020485193953805155158663266418230452129371046840218806665165231438597498081621420148051355131865453014871298249938624272154345372391802215126115854861975398983110888196358875565793593310597895992053240439684590862193232015232257668969509415398393721308747247732944493053757577694362680328316055060353219685001207195191671426063364056179006218671604638684249067247572855764071631397824639188693789635247708232195940400450829593853651517642510129335911478337995658501766175785429966837417247838838645892319920041196390925354226074199412181950196251598137076467085022479201649174056794994024967593003129957099742026595785390010668925864718839026058417582396497109522944729874183273952292247592156943695682037477731049514128818431210317476600507328613045698141876738705835589680568812062901672389707603039549708273418484069037215179862266581929555420755695654139976814235027490594662592770986044588793675562143709648705744665319814772892177290937799834952769995145061157204394128687121538756842568036622321369508041915737469009917048039885947260486258684449762362318724085339500204989295963618739437408918888568903691128987832325892601331155260901131911962536529384643993465666490271108522834470184768391573623895239732781158399355178022076177450755929138381468526577309152290502509145241134006895661073761320484545645543610238773087594308408699782711315425513472058939339453013548135244176754131385012770024156261936169649709944156933541666590935759784775946468953923516229723673403650805886186209888123677098892944769654360324668874429740130365009770291603536426502844618046128137324006034947889707723262364927515545013731797277615272236008596598736693841467685030166103516988390995570659331713219574003251046303604196295276316972893990945091279545361627593486818455830168634280653205028729105026906643726170661778439311154737149759096116144493812106746037251452616271615212935043141124155849847574091878458410177325030553207237661933970254488335435069113577757765584551136714634629223114497809546405079026755854160954260557783406467356189398503160303046687522579708387993298769182986822970667356246647939653365454544268386404322650296028881298557242198187208040207296077496128886166773288838620609977925416822156713703667391333322086520871904473048593017466793578173830832406459585018177267447690376523178740142636502172093102619263046542112708094769682392207383797482057034793196525139221370199877543931178601238198924707047629587501516299912892933069025343575488251454948469328322898202956506903308470482517744131166464774750723477861518055343466858040987132273453081836794564364430155246274158100731069323080734901590517008753654169600998911569598454702926629374049393677685285723039754691181021469267219333846563053673846537824970049506209403506606244584412627902384242785280551599253188262786271531989567165398385428909311577122438618119724985644233907558812574859217687149721341833317289714977694982117227337669878361212788465289349470676995146785835955074121568375032937822352378665103266923449887690619794116574936418347914823983988002067649967289214983486424468737742286438563064425223461210639952418146166111391586408089740413945879849036682695488197808766021959964846771145698159367567904768112047055740602351237499012258567357965107013251562237843754994747236883821060645969480067316032381351192535148322216761442411144695361182838761115795911310362420741510826322048374540404146990479647073113428368300158247350712922331119789013179701651764033036649606749518628656836032556353205617386602749327417799524243899880581322620681297935615821202736455540414428705857131835238951742471239050758919353490570268302812810704750603181709274434806504843422134152201579626776393642698168851485545206897802036257496043584180735523092410264794436423951474855853980259367017205588767985309971043290404884467541701918912275745752402121744890326681160647837985004639864193645792082105266057503921195311457592621400830660301768120178560328650220171413811642155986702637531155554821958388905393544592180587272433749899242041542816666821846374863337522729077994208960545264863862516411718049112903451378140021506899966762080732651380427792460930762263446994159193223142565029996403134383564087766689537759857473403120477091886596355579944643688205981242040477802943803932459722207541739589596692034052161680837588921636048584789929663903107349945667027830610483130862872680661015300745521669893857383782690975026078691245077096697355744971063878379083608563324774011426604588797712843335089341752120843133549155805945217503766728136818989701075795034975931147113851177529084708382646930943663837851488798723688771534770333456570254004964039987760745951276145936694695508877796318400093229973736770518512573233230127134210937068680950264362225510872877141635601716276267040168996816287213326422268377855327887822310204539762272583014902609710931194995685950834598509258803363019551891846212990914920155838298607568190737375958573348261713794703592503972126314316192159571451081744034114847904386601284244643362857392442316767411036417557776991886719910511456902002905771699177497748359489810115650557253501242519595931483440417116222205504589671636754478042893488385500275211497526246421122010774862333476246182576597178403980436617669560567049936789350370893174617560282074679058110806280348893136768773133234721178541038289213080580369302853910384704528018344058313252744129928355732704028220901951560054449764635932065083760864473989692709381120504251266930834839999956860216356148940167442564078469350152730245749435722205009403680810321136898946443062041659878360406811331217133504960504944165472883926378607868385731515366373416312566122603235977742473940324793478740770352725436532455308438250865693864330020957120719122826689237609273524467576647981797622831709248187143189474449928329051087066866263901462754600186683583622062445553828867143621415773638244852570664653423002003386087185683387095282564231892337305827467825102905239214464117590700082862874915647212962223100149842773910585262712095702633425139069275541249925826898755913048489059083665047386569005980726512682643809800080768716889749767005747228285165430935469423701296901225200041775975278099341399149455675655415791289014141807180970818010668626000334746783492116354330741766556197865412944331579610856733907210970815247694360208231077377319255935591919361509992241851869762511821971598449396422923222586939583205849537600173388242916813257003198490942805178528782842560021549233235032941872842601109623432061485547579038802849228139397130979180562447703494299530585909415031237400213445431607049538809117870571045686211621069655023028886617060314580222884344906879404890744067164557565160596397488164744575409400891911083945126233990453364772541741331330821153758983077390402549739751620825837898384996200874749622331436354553599710472896396262914675542281735624665804212007275401273982269651802596130334329792865330063654175676003369688243926391280713123038760076039957285658333390838592534249337153070457471482743551037417147024006867419141874398230449202772009682282474640802779068104741602882613440803256607530230172031981070796893051954145239327661783905828943932146148894821695918579498502263858318704473290299790473193753803543920285706350672484245008920689712995308213747335255792982565803469779504974053329506220584586976782376547358092670753891736652401577525890202354883227480678961328466821865972869785592672826822656457577958670571097728396605101516387163615321918203652729897586807786443044896628670393188486921931839182927172554503767733076856308657600665342622254535057629030862718937364327448083558928220102374951534665262857504222950995446014428801859061443379679142717413278286975998259993819084477469775220567898395378570154609157695006128689610825519373486612568225010585752375050450503641627804406676905130564807191014132285063482665726828511933059433717373899623654715534816591630086838520905491060194596758223701911513581142071521220673521948777069521608531717477580542554138038978873716058241771904252401056370661792996395808706717083872950238057238547610495061732689587948240319569499000594593719849004104550034415014066154526994609094441391439071866309009249691812468813088126242358787204856089608234037677437509496768451058059579977189006605354903359961784245121096144877063187466910292356627771165203522647016166296488083808997887687769308220856530068153940856748041349469491870704992660210066455819832886130678021460369893174499939107231230405088342485383796742208847060385334943928147519685791292174441917386398739155908915859310750449419969425856920503891277550092560029225566028245733054164370482965351532695757311986033153861767127072322962670122480612322195488891848040149357757131302308897501348573600357134307046628157178720021578705983302856401851403674168523579202306440644159448586566246905477964086572462611834063213025126230896949713642334585419351128373132157232101577687884147986752364441711298472354763142715850293434746434127230225735792097083439910498394019789979870351837786010778667226102241684498686398874227580631272581474396676719404444290071284914286251867085092358453277091441099575357659812178523756848934429670368686181229928033433456696493460770903592231804072849827640955873854491455416480621098619090449331761288966135325413062313991971462332768487224184119088841054819270878948939590681778579588918587881426099241767753862382406002451821149035160124492893940578494055432173589779503867792448614769448734671863583817296627073341404027631029821562303142157743379294616649374361560459036060298581224576085252700570061877609582745974967405315882162695982851143006320897730473133461172142945805407178876223011462558510520930761771493278603541262719880522826864107055049364370555816945830840650960447321868266858216903784868032280479864021706315653687489290467679015864709379478762373013822026373788822827564163725872670921602434077279298565679825234946428376162918717556993454693724759744644374586123577768842647346924365909558553162571564807969034052671504760754742676960038255814034354716520834598864538432593908154392918939089896109083521992519053530398359081516289247571043354786424954980741388745386023113329591390636006694539437438690759589121288758007804082911975207095278133335550232776761783391381794105109412999680430103899475051243232331431120663598726618610084717254696908726637456858466646162093223427680684601718516702427671125913080059583053658180035991214447685286534985397013876080817020918472863351368783745251292936294373137797794168163130983688833624592488270042533275310174037401858155192663147588032450316349828944090941459435709839331454077937638533884824056964583661906580362312059760037127664830995125859310214290237306052000883415749724405028863402500028747055233688541068593389039662379913776485715772093749681055718277781429659244251666703110135820625316518906936462663613376783677001574909561444962828205690820330013121289873007855206280915035880334071746233511142838096550651818271177825964147342275885803162473648253508879276299074813242692461714169521068548818275361612786955216412383263246164034602771053052217127416909831714425842754359325193708367920524870186212708574531518197079797624156322369627530303625010057401503185241771381716916959066550480494267473696656051819527729740440782487416353087074803447126307550453018768734511631260002571765708294113447159058326859464022975489061868569715529325333679192904509181338989039531226114077604146341395120253199068720690450654317360799352434791082039695478061926453254644053124586362026016156957888326419910345519741792140396061817459467332211367113051675844970722080638249309285348257747082754939860608508486386549912912220391895379332321814344998458680557267915553525212113907723389037979427485209309504641599639196053296030292739274663906234190084882219800040754390250718430168480866157009022053158273857417267902310193566064243660834080202786392263652453395504706244108957791049298908397097715806857036527872932846771952274875201321856644284239116502005786314083266606564469023548865452436995428173054383481532525156311603438941440612599662264959878769003712412406305072713049361060777519351766684350979095112470377728527045181653556285621656761979382960837252084759203181114384404005114613990326273362146150667851880079327563486444803726963278475818453468509565365380723807736793526242145533088833679727074192838872685484977387306670007551965761431583941102042492623133242770270821710047137152167948872468741189259805623910487138975034203376673344989060052111727844670530521327425332189734978888307943626099125569741350839434061750712876445222039557455150019442996232739317091487905148812821582894579949748623433452865460274945133477267345362799684706610937707688048379567860499887327287273158785195505216946986571759372875984514994087366735699690322212619073372131984972873714823922056361158276719293687517950957314775347729780073870450969204201405641649670458849057466793682155521901095027966023590200629563426621697556166261956721403439803621918243177242110484823901622121433246394511832190737036276362556947535372619436126996645342229589006736952014870393865015087074414735220220770411070088328030731545041085721762448600324574529642445801550887535581445128918173686346116567111050151109714760544361537920207546115073529167935359803746233158035402507293585422134950239655004818456256327794930441926282941363007224150758144477688955569616025741423859274415740477217643474948663183182648210083785749080222199122144694117400270856159095104885845967392332602301843740328702808569782311182460392642129024729192535226787567897868564600570545108945374190649371558894253329703486982693386634574807801078719254129784907155276683405362407228975018016417486695226639468897799829747034414846605232977531914266638473906810541671168066131262918834764800639654762345192540580400257727950859061817326000188356677576249635084512266410557551645134470262083485480776173701923626406384831371842087477223094467978661221649689842322789248762605167898686475739012260361067924661728390016267344059903224026536343550301552983264519865881303942586617734987280231892544278016113318354276103258002393942607858756949485119300715853929843163967575531352484221274814864027297307155457109423432471856970523635672286551516265672389248080659279448953078708153606666741314598260798811278754656313007785743484189610809499119436037561075326359414143476882494692530787790693275290895909945065272071979419682741840819830567497688086236460819345623637702467815073133466197923119939117195979352833117496820500577299938566476984260815518940866776320855483159836188850448339911351505132909703990088919063133375804094886955895465912648104534621430295733375992898959329664444686900648674531661878821297194146191914132978673375283702995190706179924178140249356285006536273771636355569720003246996130665282451695167273161831393867558791278264933758040011059211372270839123518459709107480669852696080909181872978501574064544548264471078633386599113188810137746318984496745989011540334259315347740082110734818471521253374507271538131048296612979081477663269791394570357390537422769779633811568396223208402597025155304734389883109376



再大就不行了,真的无力,,,,如果有更好的方法欢迎留言,毕竟这个方法完全是我自己空想出来的

谢谢!