上一篇《各整型数据能计算出斐波那契数列的最大项数是几?》答案是用unsigned long long型计算,最大只能输出第93项,再往后一项就溢出了。如果要计算的项数上万、几十万,甚至到百万级,就只能用字符串来帮忙了;因为理论上string的最大长度可以到4个G,所以可以认为它是无限的。用字符串代替数字做加法运算,自定义函数如下:
string strAdd(string a, string b) for (size_t i=n;i>0;i--){ k=(a[i-1]-'0')+(b[i-1]-'0')+j; reverse(c.begin(),c.end());
这样就可以用常规的几种方法来计算斐波那契数列的精确整数值了,先来算一下第100,000项的值:
25974069347221724166155034021275915414880485386517696584724770703952534543511273 68626555677283671674475463758722307443211163839947387509103096569738218830449305 22876385313349213530267927895670105127657827163560807305053220024323311438398651 61378272381247774537783372999162146340500546698603908627509966393664092118901252 71960172105060300350586894028558103675117658251368377438684936413457338834365158 77542537191241050033219599133006220436303521375652542182399869084855637408017925 17616293917549634585586163007628199160811098365263529954406942842065710460449038 05647136346033000520852277707554446794723709030979019014860432846819857961015951 00185060826491923458731339915013391993236310230186417253647713626647508013398243 12317034314529641817900511879573167668349799016820118499077566864568450662873924 85603914047605199550066288826345877189410680370091879365001733011710028310473947 45625609144493282137485557386408057981302826664027035429441210491999580313187680 58991865134251759599115205631553377039969410355182752749199598022575079020377981 03089922984996304496255814045517000250299764322193462165366210841876745428298261 39823447836658158804081900330738293950008213200937471548513102722081730543226486 69496309879147143629255542526240439996153269798768075106468190687921182991679644 09178271868561702918102212679267401362650499784968843680975254700131004574186406 44829948587255174474669565187912691699324456481767332225714931496776334584662383 03338202397024368594782876418757885729107101337003000942293335972927791914092128 04901545976262791057055248158884051779418192905216769576608748815567860128818354 35429230739781015478570132843861272862017665395344499300198006295389369855007232 86651317181135886613537472684585432548981137176605194616937916884425342594781263 10388952047956594380715301911253964847112638900713362856910155145342332944128435 72209962867461194209516610023097407099655319005081586699114454426478828726428450 17253320486483194578920399848938236367456182203750973485668474338872490493370316 33826571760729778891798913667325190623247118037280173921572390822769228077292456 66275053833750069260772105936194212689203025674435653780083183063759333450235025 69729065152853271943677560156660399164048825639676930792905029514886934137991251 74856667074717514938979038653338139534684837808612673755438382110844897653836848 31825883633991731045585090566384620250146313118310874290772926221594302042915947 40306101839816855066950261973761508571761199475875722129872053120607918649803615 96092339594104118635168854883911918517906151156275293615849000872150192226511785 31508925102752804515123860379218469212153382928713692432152733271415747882959026 01571954853164447945467502858402360002383447905203451080332820138038807089807348 32620122795263360677366987578332625485944906021917368867786241120562109836985019 72901771578011204045864915393511578349954610063663574544850824188827906753135995 05192062229760153765297973085881648731173082370598284894044874039320535929359764 54165560795472477862029969232956138971989467942218727360512336559521133108778758 22887959758032045960847902450638519417431261637751045992110248687949634170686209 29088930685252348056925998333775103901013166178123051145719327066291671254465121 51746802548190358351688971707570677865618800822034683632101813026232996027599403 57999777404624495211453158837035790448329315000724617341735580556783215345434117 00202585608091662941986374015145695722728369219632295111877625307534025947814482 04657460288485500062806934811398276016855584079542162057543557291510641537592939 02288435612079264370556006236798654438246437394697247194599655579550583803482559 78396827760847315302517889517186307227611036305093600742622617173630586132915440 24695432904616258691774630578507674937487992329181750163484068813465534370997589 35360740517290941269765759329515681862474712763646883655175701835341727466260730 65104511957628663499228486787805910851189856535554349587616640164475880286336297 04046289097067736256584300235314749461233912068632146637087844699210427541569410 91224656857120471724113337848981676409692498163342117685715031167104006817530319 21154156119580425706586931272762137106974722260296555246110537155545324997508432 75200199214301910505362996007042963297805103066650638786268157658772683745128976 85079636637105938091122542883583919412115477375998130192165095214013330607098731 37329265181692268450634439540567298120315463923249817937804691037934221694952291 00793029949237507299325063050942813902793084134473061411643355614764093104425918 48136393054236937897652052645634764831827263337151211203062923388928648794920973 78478618848682608046473195392008403983080088038690495574197562192939221108257663 97681361044490024720948340326796768837621396744075713887292863079821849314343879 77808873795889684094614341592713175783651145782893558185990292353438888884658745 21308381377794436361197628390368945957601203165022798579015453447473527069728514 54599861422902737291131463782045516225447535356773622793648545035710208644541208 98423503890877022303984938021473480968743333622544915011741175157070456105089527 40002063804979679604026178186644812485472696308234733772455433905198413087697812 76565916764229022948181763075710255793365008152286383634493138089971785087070863 63220586901893837776606300606675773242727292924742129526500070664672273000995612 41914091389846752249557907293984956087504566942177715511073466304566039441362358 88443676215273928597072287937355966723924613827468703217858459948257514745406436 46099705931612059684156047323439665245723165031779283386059038836041769142873273 57039868033426046700717173635730911229813069032861371225979370966057751729645282 63757434075792282180744352908669606854021718597891166333863858589736209114248432 17864503947919542420819162608857106911043399480147301310086984886643072121676247 31196181907378207665829682807960794822595490363282665780069948568253005364366748 22534603705134503603152154296943991866236857638062351209884448741138600171173647 63212602996140856192559970756682786677873237741944446227539990929104469771647615 11186723272386792081333673061819448493966071233452718565202536436219641987827529 78813060080313141817069314468221189275784978281094367751540710106350553798003842 21904550848223938699329692665922111274269813306230007346562849809363669304944680 16285537126334126203784919194986000972008367278766507868863069334189952257683143 90832484886340318940194161036979843833346608676709431643653538430912157815543512 85207772085809890209958644960247949197068723076568710923438071950982481447315781 37800806393584187566550985013218828528401849814076907385073695353777118803885289 35347600930338598691608289335421147722936561907276264603726027239320991187820407 06741227225812076672904007192423793033097213236418409395610299597129179982829000 95391473824378027790511120309545825328887211461701334403859396540478061993332245 47317803407340902512130217279595753863158148810392952475410943880555098382627633 12760671812617102201135618180077540022751673414416921642497317562136312858828197 80057888324545345815224349372681334339977105125320814783450671398350383329013139 45986481820272322043341930929011907832896569222878337497354301561722829115627329 46881485328192210075237362682764315268573549322302801810144964900901552924863833 88856648930022509743436012008143651536253691994467097111269519667257800618912154 40222487564601554632812091945824653557432047644212650790655208208337976071465127 50832048716527157747232588727576112835759213255393444628943325810502863358366929 18285668947362235082502949640657986308096143416968304675951743553132243626642071 97608459024263017473392225291248366316428006552870975051997504913009859468071013 60233644016440017918861085323076499171437205446782359721176046515320016308533631 93515896458906817223728123103202718979179512727996560536940321112428465909945563 80215461316106267521633805664394318881268199494005537068697621855231858921100963 44101293353573391845966819753983428469682288946007635203168892200202193131836975 75569620611157743058263055358620156378912460312206729339926173783796251509999354 03648731423208873977968908908369996292995391977217796533421249291978383751460062 05496734166283348734101109777053589806649813601139557158432830871394058253527405 60810115039079416880791972129331483030726386786314110384431282159949368243429981 88719768637604496342597524256886188688978980888315865076262604856465004322896856 14925506396881140440042950389424587238223354310107869151732833360477926272776568 60761777056168740502577437499837758301438561354272738385897741335269491654839297 21519554793578923866762502745370104660909382449626626935321303744538892479216161 18888970207791044856319951482663080287954954645358386630734442375331971227915886 17072896520901498483054359832007713266534072906620167757064096901837712013068232 45333477966660525325490873601961480378241566071271650383582257289215708209369510 99589013285949072430618332575520120809000717502202294974280182344541371191629844 99147222541965946822214682606449618392542496709031040075814888579716722463228870 16438403908463856731164308169537326790303114583680575021119639905615169154708510 45970054209857179731801556474140617233414584711126854792989244300139146828910367 91792169786165824890073220335913767065276765213071439853027609884780562169946596 55461379174985659739227379416726495377801992098355427866179123126699374730777730 56932443016683933301155451554265686493749212868704912175424596783113296924849246 67442619990339728256748734602011504422287804661243201830161082321839086547710423 98228531316559685688005226571474428823317539456543881928624432662503345388199590 08510521138312449186180262443219554043398572284134125440941177172215686708629174 21240531106205228429861992736294062088347548536451281232796090972139537753600230 76765694208219943034648783348544492713539450224591334374664937701655605763384697 06291872574542650587941463017663976045747431108155674709165270874812526715991379 32405273046136939611698925898083119063225107779285620719994594877006118010022961 32304588294558440952496611158342804908643860880796440557763691857743754025896855 92725251456340438521782589059955395462745138545445291676104296926797089358005623 45019185714890304184957674008193599732187119574963570959678251710962647520688908 06407651445893132870767454169607107931692704285168093413311046353506242209810363 21677191042078616218421376393819462569728678141363638962012397691046541895680619 73231484142245500716172158513213020306841760872158927020988791089380810459033972 76547326416916845445627600759561367103584575649094430692452532085003091068783157 56151984756756919128478465469255866511155791346127242533608363513134218390517715 45112284644551360160135132289485432715047608393075561009087860966638706122786902 74831819331606701484957163004705262228238406266818448788374548131994380387613830 12885988526420199228618820849958864088852135250145761539648264745102590253074317 29568996364996157075518558371659353671254485150893629045677366300355624573747791 00987992499146967224041481601289530944015488942613783140087804311431741858071826 18514905113874483135843906722894940825828602165028892722838742643278616869038196 05301558944594518087351972460082215293439808282541261282571572093509853828007385 60472910941184006084485235377833503306861977724501886364070344973366473100602018 12879288699186182441845396899477725948216913713364747045317297980924584436112961 89975956962409718455640205114325895918447249209429303016514887130798021023790655 36525154780298059407529440513145807551537794861635879901158192019808879694967187 44822415683646353432616024263293476163445816389016380512389418452397342184149688 92623984896486420934098166814947711551770095626690298501015135375998012725012419 71119871526593747484778935488777815192931171431167444773882941064615028751327709 47450476392287489066298984154025935083403514203513616881924823899802770666691634 21334243120545073593886166876911881857761181357713324839652098820859823912986063 86822804754362408956522921410859852037330544625953261340234864689275060526893755 14840329854208699122105259700562857670770256769530097897004640892000985210698029 54196998021380532957981594782899344432454915653278452238405512404452082264354206 56313310702940722371552770504263482073984454889589248861397657079145414427653584 57295132971909194769441191096679747426267559095383203916967349426136003226307742 86841050400613510521944137781580950057145268460098103521092490400279580507364369 61021241137739717164869525493114805040126568351268829598413983222676377804500626 50724173175739521979689075482519932925964980162706866565803017887740561516715973 19273204793762473755058550528396602945669925221736008740812120142090710419375985 71721431338017425141582491824710905084715977249417049320254165239323233258851588 89333709713631089257153141776197832603375010902628406641580137135935652927808845 63059517700814439941146742918503607488523666547448699280832305168157116029118363 74147958492100860528981469547750812338896943152861021202736747049903930417035171 34212692348670056662750622905863691188222890317051030540688209697087554532936943 40639812976964780318254516421783473477164710584232385945801830527562139101869976 04305844068665712346869679456044155742100039179758348979935882751881524675930878 92815924349219754538766830568466842077540982178124705335452319479739895332017598 86402810588255576980043971205383124594289573776960018574973352499650135093689259 58021863811725906506436882127156815751021712900765992750370228283963962915973251 17341858672102349731776596945428362551937155600914368032931196284254662840314244 43706484323903749064108113007928489557672434812000903098884572709077508736388732 99642555050473812528975962934822878917619920725138309388288292510416837622758204 08191893360365387528411678570372098971883298692192781662967584458017491180911966 30481874341550677908639488314892415043004767045279712834822115222028370628573142 44107823792513645086677566622804977211397140621664116324756784216612961477109018 82609467737768640617672148429389497667138012278894130902655351109611834701256519 75408070953840609168639369066737866272094294342642604029021583173450037274625889 92622049877121178405563348492490326003508569099382392777297498413565614830788262 36332236838070982234601227424137903647345173592521575475716093427093519290172395 49214264906911152715233381091240428121028937384881673589539345089306977155229891 99698903885883275409044300321986834003470271220020159699371690650330547577095398 74858067002449104550489006172718916803139452803616563394157133463722255047754746 07560550241087643821216888489169403712589019484906853797222445620094838194915327 24502276218589169507405794983759821006604481996519360110261576947176202571702048 68491461689406840414083358756211831921083800563214456201894150594578002531874747 19116048406779977654148306221790693308538751292989830095802775541454350587689849 44179136535891620098725222049055183554603706533183176716110738009786625247488691 47607766447014719307447630241166033567176556487444057799053199627163297200910944 92492164560306188277729477507647774464525863289191591074442523200829182095180210 83700353881330983215894608680127954224752071924134648334963915094813097541433244 20929993075148107791900234612812233016179942993061880053341455063393213933964686 16164169552202164479954172431711657444713641977332048993650747678441499295480730 25856442942381787641506492878361767978677158510784235702640213388018875601989234 05686842321558562850864552525837701062053222424498799062526348401077432248817255 86022333020763999338541520153438477254429178951306370503204449177977523708719582 77976799686113626532291118629631164685159934660693460557545956063155830033697634 00027668515129384363888609082837614115773200352756515874590656702543943793110483 85713132944906049265823631089495350900826731544972263966480886180415739778884728 92174618974189721700770009862449653759012727015227634510874906948012210684952063 00251901165596358055242918020558690425968526104741283451846673693858002770025296 53563667216198836724282269339503259303909945831686655422346548570208755046175205 21853721567282679903418135520602999895366470106557900532129541336924472492212436 32452304289518846177912233806967423398069488727058750338922839509513520912310925 81590069603951563677360671090505662996035718764232479207528361608055976977787564 76767210521222327184821484446631261487584226092608875764331731023263768864822594 69121103236773755812213347055680595800831012748167396201958359802396741448986727 68458698193767837571679367232130815861910459950589709910646869194634480385741438 29629547131372173669836184558144505748676124322451519943362182916191468026091121 79300186478805006135160314435007618921344160248809174105123229035717920549792797 09245024799408426961588184426161637800447594782122408732041244211691998055726491 18243661921835714762891425805771871743688000324113008704819373962295017143090098 47692723749887593863994253059533160789161881086350598244457894279934651491595288 48697574880258233535716778648268280511408854297327881977657369660057277001625924 04301688659946862983717270595809808730901820120931003430058796552694788049809205 48430546761103465474806729067439976361259243463771999584386281239198547020241488 00768808188480878923915913694632931132768493297772016466417275872591223547844808 13433328050087758855264686119576962172239308693795757165821852416204341972383989 93273480342926234072233815510220910126294924974242327169884202329730326016179057 56731112354658902982983131151236076067739689981538122869996420146098525797936912 46016346088762321286205634215901479188632194659637483482564291616278532948239313 22944023104327728876813955021334826638868745325928158785450389099156194963247885 50350902893909737189880039990261320158726786378730956781096253110080544894188579 83565902063680699643165033912029944327726770869305240718416592070096139286401966 72575008701221814973313369580960036975176495135004028592624920339811101495322753 36218445007443315624345324842179861083462613458975912348399707518542232816771872 15956827243245910829019886390369784542622566912542747056097567984857136623679023 87847816120147798293908051315025817452377352951016529693456278612224115078358775 53733483727644398380820006672147400344663227769189369676128789834889420946881023 08427036452854504966759697318836044496702853190637396916357980928865719935397723 49548678718041640141528148944378503629107151780528585758398771114547424015641647 71941163913549354667555935926088492005463846854030280809364172505836533680934072 25310820844723570226809826951426162451204040711501448747856199922814664565893938 48802864382231384985232845236066704580511367966375103924816333617327454727577563 68109773445392758275605974251607054686896577945305216023159398657809748015154149 87097778078705357058008472376892422189750312758527140173117621279898744958406199 84391336568029772120875193498850449971391428515803232482302134063031258607262454 16377652345055220510863182853596585207081733927095664450114040551065790550374177 80393351658360904543047721422281816832539613634982525215232257690920254216409657 45261806605177790159290288424059999888275369195754011695469615227040128085757976 61547221929256559639918209488946426575122887663303021337463674492174493516371047 25732980832812726468187759356584218383594702792013663907689741738962252575782663 99080979264701140758036785059938188718456009469583327077512618128201539104177395 09182441375619999378192403624695582359241714787027794484431087519018074141102903 70706052085162975798361754251041642244867577350756338018895379263183389855955956 52785722792615552449473936366553390452865621546428834316228292112329045184221253 28881014158840616199391950422300598983499665694635801868167170748188232158486477 34386780911564660755175385552224428524049468033692299989300783900020690121517740 69642857393019691050098827852305379763794025796895329511243616677891058555721338 17890899454539479159273749586002682378444868720372434888346168562900978505324970 36933361942439802882364323553808208003875741710969289725499878566253048867033095 15051845212694498925159639207942145260650851605232561486193828248983800081508535 15646427617008320964831179444019717801492133453359033366723767192297220699707660 55482452247416927774637522135201716231722137632445699154022395494158227418930589 91174693177377651873585003231801443288391637424379585469569122177409894861151556 40466095650945381155209218637115186845625432750478705300069984231401801694211091 05925493596116719457630962328831271268328501760321771680400249657674186927113215 57327004993570994232441638708924242758440765121557267603792476534180898431267694 11103131659514294793776706988812496434219332874043904855382221608370889075982773 90184204138197811025854537088586701450623578513960109987476052535450100439353062 07243970997644514679099338144899464460978095773195360493873495002686056455569322 42296918156302939224876064708734311663842054424896287602136502469918930401125131 03835085621908060270866604873585849001704200923929789193938125116798421788115209 25913043557232163566089560351438388393901895316627435560997001569978028923636234 -------------------------------- Process exited after 43.28 seconds with return value 0
计算数列第10万项的源代码如下:
string strAdd(string a, string b) for (size_t i=n;i>0;i--){ k=(a[i-1]-'0')+(b[i-1]-'0')+j; reverse(c.begin(),c.end()); string fib1(long n) //定义递推法 for (auto i=3; i<=n; ++i){ string fib2(long n) //递归法太耗时间 c = strAdd(fib2(n-1), fib2(n-2)); string fib3(long n) //用容器时间差不多,太耗内存空间 for (int i = 2; i < n; i++) arr.push_back(strAdd(arr.at(i-2),arr.at(i-1))); s << c << endl << endl << '第' << i <<'项的长度:'<< c.size() << endl; ofstream out_file('Fibonacci.txt');
再用上述代码计算出第100001项,然后把两项的值替换掉string a,b的初始值“1”,最后耗时133秒,计算得到数列第20万项的值:
1508568355798893899263687894817313444184841656165868974021430081400787583936394812351619099573209347 1171781051796266302937774866189506849346804997282989249330595609531388039656501674951902073416282675 6867545612008745257856504784958722654132733678007112355970827359478161833369482766422435366232436736 8765313770978639661659359613120993580646300798217138405565931635846450773386124385241345993441744392 6921039675036360272864675639374407908082412318246291986517133289505130691422859640541931718590209286 4657505644409580586985935014523432239364338088655492633909256243409937019018753645668544126349769853 6331091496661102820839146477082237137545109143876337141802589434129485563112104064222852676691941806 9072433195848445930784362588088491909572194728708365539666263098137255830767958717493568606834420525 3208461634110429083194983843184527937104990436134713980142091989825375399040246389540803668684805681 9034643125463964320496174521308753631883969528360171544667360666666511788652493139976527620833746328 8537773131251108750756205096068672482133243054818126655239593578836887709032159318387668321645414703 3023746122154093794982052151698045687273205557091125530628911396555723027029436962873702608592396417 7412734450829524210770560635045961741215694709873642782745658717701317758148293110721581393158365556 2846111188339452737408562216970417356954474367646357836770047579714349363918537229775630512391906292 1992572456841770553982543845613393612400590320047716831102369797422740950912120878865732398898031024 4294835226452063441793521138634806889871743927164147084606451880582629116741730263796074632026047730 3289023345521932215347151804409026447421183429858973401256005212609284636977483396468020797603532714 7203207960677350302533100100040188921911087448390329131010268832448900183911343227547774280391774027 5723502404453113290999855514871952975811069439150997067076682513409146213552200823143843831196386561 4327695985652085123960764363853506121004650277976974669012431467655262543108545665271997195753751331 9830060230650333905587150714880561804234808490008791223754722535962792124101197982611601551453915132 3325665372889977440272456233864042374727546419630470211504765023392057752128954432243507319981091035 ... ... ... 略 ... ... ... 61926126352359630329214201957704677119789193142654798777312450935031089429802652246259408175853125 -------------------------------- Process exited after 133.9 seconds with return value 0
代码如下:
string strAdd(string a, string b) for (size_t i=n;i>0;i--){ k=(a[i-1]-'0')+(b[i-1]-'0')+j; reverse(c.begin(),c.end()); 25974069347221724166155034021275915414880485386517696584724770703952534543511273\ 68626555677283671674475463758722307443211163839947387509103096569738218830449305\ 22876385313349213530267927895670105127657827163560807305053220024323311438398651\ 61378272381247774537783372999162146340500546698603908627509966393664092118901252\ 71960172105060300350586894028558103675117658251368377438684936413457338834365158\ 77542537191241050033219599133006220436303521375652542182399869084855637408017925\ 17616293917549634585586163007628199160811098365263529954406942842065710460449038\ 05647136346033000520852277707554446794723709030979019014860432846819857961015951\ 00185060826491923458731339915013391993236310230186417253647713626647508013398243\ 12317034314529641817900511879573167668349799016820118499077566864568450662873924\ 85603914047605199550066288826345877189410680370091879365001733011710028310473947\ 45625609144493282137485557386408057981302826664027035429441210491999580313187680\ 58991865134251759599115205631553377039969410355182752749199598022575079020377981\ 03089922984996304496255814045517000250299764322193462165366210841876745428298261\ 39823447836658158804081900330738293950008213200937471548513102722081730543226486\ 69496309879147143629255542526240439996153269798768075106468190687921182991679644\ 09178271868561702918102212679267401362650499784968843680975254700131004574186406\ 44829948587255174474669565187912691699324456481767332225714931496776334584662383\ 03338202397024368594782876418757885729107101337003000942293335972927791914092128\ 04901545976262791057055248158884051779418192905216769576608748815567860128818354\ 35429230739781015478570132843861272862017665395344499300198006295389369855007232\ 86651317181135886613537472684585432548981137176605194616937916884425342594781263\ 10388952047956594380715301911253964847112638900713362856910155145342332944128435\ 72209962867461194209516610023097407099655319005081586699114454426478828726428450\ 17253320486483194578920399848938236367456182203750973485668474338872490493370316\ 33826571760729778891798913667325190623247118037280173921572390822769228077292456\ 66275053833750069260772105936194212689203025674435653780083183063759333450235025\ 69729065152853271943677560156660399164048825639676930792905029514886934137991251\ 74856667074717514938979038653338139534684837808612673755438382110844897653836848\ 31825883633991731045585090566384620250146313118310874290772926221594302042915947\ 40306101839816855066950261973761508571761199475875722129872053120607918649803615\ 96092339594104118635168854883911918517906151156275293615849000872150192226511785\ 31508925102752804515123860379218469212153382928713692432152733271415747882959026\ 01571954853164447945467502858402360002383447905203451080332820138038807089807348\ 32620122795263360677366987578332625485944906021917368867786241120562109836985019\ 72901771578011204045864915393511578349954610063663574544850824188827906753135995\ 05192062229760153765297973085881648731173082370598284894044874039320535929359764\ 54165560795472477862029969232956138971989467942218727360512336559521133108778758\ 22887959758032045960847902450638519417431261637751045992110248687949634170686209\ 29088930685252348056925998333775103901013166178123051145719327066291671254465121\ 51746802548190358351688971707570677865618800822034683632101813026232996027599403\ 57999777404624495211453158837035790448329315000724617341735580556783215345434117\ 00202585608091662941986374015145695722728369219632295111877625307534025947814482\ 04657460288485500062806934811398276016855584079542162057543557291510641537592939\ 02288435612079264370556006236798654438246437394697247194599655579550583803482559\ 78396827760847315302517889517186307227611036305093600742622617173630586132915440\ 24695432904616258691774630578507674937487992329181750163484068813465534370997589\ 35360740517290941269765759329515681862474712763646883655175701835341727466260730\ 65104511957628663499228486787805910851189856535554349587616640164475880286336297\ 04046289097067736256584300235314749461233912068632146637087844699210427541569410\ 91224656857120471724113337848981676409692498163342117685715031167104006817530319\ 21154156119580425706586931272762137106974722260296555246110537155545324997508432\ 75200199214301910505362996007042963297805103066650638786268157658772683745128976\ 85079636637105938091122542883583919412115477375998130192165095214013330607098731\ 37329265181692268450634439540567298120315463923249817937804691037934221694952291\ 00793029949237507299325063050942813902793084134473061411643355614764093104425918\ 48136393054236937897652052645634764831827263337151211203062923388928648794920973\ 78478618848682608046473195392008403983080088038690495574197562192939221108257663\ 97681361044490024720948340326796768837621396744075713887292863079821849314343879\ 77808873795889684094614341592713175783651145782893558185990292353438888884658745\ 21308381377794436361197628390368945957601203165022798579015453447473527069728514\ 54599861422902737291131463782045516225447535356773622793648545035710208644541208\ 98423503890877022303984938021473480968743333622544915011741175157070456105089527\ 40002063804979679604026178186644812485472696308234733772455433905198413087697812\ 76565916764229022948181763075710255793365008152286383634493138089971785087070863\ 63220586901893837776606300606675773242727292924742129526500070664672273000995612\ 41914091389846752249557907293984956087504566942177715511073466304566039441362358\ 88443676215273928597072287937355966723924613827468703217858459948257514745406436\ 46099705931612059684156047323439665245723165031779283386059038836041769142873273\ 57039868033426046700717173635730911229813069032861371225979370966057751729645282\ 63757434075792282180744352908669606854021718597891166333863858589736209114248432\ 17864503947919542420819162608857106911043399480147301310086984886643072121676247\ 31196181907378207665829682807960794822595490363282665780069948568253005364366748\ 22534603705134503603152154296943991866236857638062351209884448741138600171173647\ 63212602996140856192559970756682786677873237741944446227539990929104469771647615\ 11186723272386792081333673061819448493966071233452718565202536436219641987827529\ 78813060080313141817069314468221189275784978281094367751540710106350553798003842\ 21904550848223938699329692665922111274269813306230007346562849809363669304944680\ 16285537126334126203784919194986000972008367278766507868863069334189952257683143\ 90832484886340318940194161036979843833346608676709431643653538430912157815543512\ 85207772085809890209958644960247949197068723076568710923438071950982481447315781\ 37800806393584187566550985013218828528401849814076907385073695353777118803885289\ 35347600930338598691608289335421147722936561907276264603726027239320991187820407\ 06741227225812076672904007192423793033097213236418409395610299597129179982829000\ 95391473824378027790511120309545825328887211461701334403859396540478061993332245\ 47317803407340902512130217279595753863158148810392952475410943880555098382627633\ 12760671812617102201135618180077540022751673414416921642497317562136312858828197\ 80057888324545345815224349372681334339977105125320814783450671398350383329013139\ 45986481820272322043341930929011907832896569222878337497354301561722829115627329\ 46881485328192210075237362682764315268573549322302801810144964900901552924863833\ 88856648930022509743436012008143651536253691994467097111269519667257800618912154\ 40222487564601554632812091945824653557432047644212650790655208208337976071465127\ 50832048716527157747232588727576112835759213255393444628943325810502863358366929\ 18285668947362235082502949640657986308096143416968304675951743553132243626642071\ 97608459024263017473392225291248366316428006552870975051997504913009859468071013\ 60233644016440017918861085323076499171437205446782359721176046515320016308533631\ 93515896458906817223728123103202718979179512727996560536940321112428465909945563\ 80215461316106267521633805664394318881268199494005537068697621855231858921100963\ 44101293353573391845966819753983428469682288946007635203168892200202193131836975\ 75569620611157743058263055358620156378912460312206729339926173783796251509999354\ 03648731423208873977968908908369996292995391977217796533421249291978383751460062\ 05496734166283348734101109777053589806649813601139557158432830871394058253527405\ 60810115039079416880791972129331483030726386786314110384431282159949368243429981\ 88719768637604496342597524256886188688978980888315865076262604856465004322896856\ 14925506396881140440042950389424587238223354310107869151732833360477926272776568\ 60761777056168740502577437499837758301438561354272738385897741335269491654839297\ 21519554793578923866762502745370104660909382449626626935321303744538892479216161\ 18888970207791044856319951482663080287954954645358386630734442375331971227915886\ 17072896520901498483054359832007713266534072906620167757064096901837712013068232\ 45333477966660525325490873601961480378241566071271650383582257289215708209369510\ 99589013285949072430618332575520120809000717502202294974280182344541371191629844\ 99147222541965946822214682606449618392542496709031040075814888579716722463228870\ 16438403908463856731164308169537326790303114583680575021119639905615169154708510\ 45970054209857179731801556474140617233414584711126854792989244300139146828910367\ 91792169786165824890073220335913767065276765213071439853027609884780562169946596\ 55461379174985659739227379416726495377801992098355427866179123126699374730777730\ 56932443016683933301155451554265686493749212868704912175424596783113296924849246\ 67442619990339728256748734602011504422287804661243201830161082321839086547710423\ 98228531316559685688005226571474428823317539456543881928624432662503345388199590\ 08510521138312449186180262443219554043398572284134125440941177172215686708629174\ 21240531106205228429861992736294062088347548536451281232796090972139537753600230\ 76765694208219943034648783348544492713539450224591334374664937701655605763384697\ 06291872574542650587941463017663976045747431108155674709165270874812526715991379\ 32405273046136939611698925898083119063225107779285620719994594877006118010022961\ 32304588294558440952496611158342804908643860880796440557763691857743754025896855\ 92725251456340438521782589059955395462745138545445291676104296926797089358005623\ 45019185714890304184957674008193599732187119574963570959678251710962647520688908\ 06407651445893132870767454169607107931692704285168093413311046353506242209810363\ 21677191042078616218421376393819462569728678141363638962012397691046541895680619\ 73231484142245500716172158513213020306841760872158927020988791089380810459033972\ 76547326416916845445627600759561367103584575649094430692452532085003091068783157\ 56151984756756919128478465469255866511155791346127242533608363513134218390517715\ 45112284644551360160135132289485432715047608393075561009087860966638706122786902\ 74831819331606701484957163004705262228238406266818448788374548131994380387613830\ 12885988526420199228618820849958864088852135250145761539648264745102590253074317\ 29568996364996157075518558371659353671254485150893629045677366300355624573747791\ 00987992499146967224041481601289530944015488942613783140087804311431741858071826\ 18514905113874483135843906722894940825828602165028892722838742643278616869038196\ 05301558944594518087351972460082215293439808282541261282571572093509853828007385\ 60472910941184006084485235377833503306861977724501886364070344973366473100602018\ 12879288699186182441845396899477725948216913713364747045317297980924584436112961\ 89975956962409718455640205114325895918447249209429303016514887130798021023790655\ 36525154780298059407529440513145807551537794861635879901158192019808879694967187\ 44822415683646353432616024263293476163445816389016380512389418452397342184149688\ 92623984896486420934098166814947711551770095626690298501015135375998012725012419\ 71119871526593747484778935488777815192931171431167444773882941064615028751327709\ 47450476392287489066298984154025935083403514203513616881924823899802770666691634\ 21334243120545073593886166876911881857761181357713324839652098820859823912986063\ 86822804754362408956522921410859852037330544625953261340234864689275060526893755\ 14840329854208699122105259700562857670770256769530097897004640892000985210698029\ 54196998021380532957981594782899344432454915653278452238405512404452082264354206\ 56313310702940722371552770504263482073984454889589248861397657079145414427653584\ 57295132971909194769441191096679747426267559095383203916967349426136003226307742\ 86841050400613510521944137781580950057145268460098103521092490400279580507364369\ 61021241137739717164869525493114805040126568351268829598413983222676377804500626\ 50724173175739521979689075482519932925964980162706866565803017887740561516715973\ 19273204793762473755058550528396602945669925221736008740812120142090710419375985\ 71721431338017425141582491824710905084715977249417049320254165239323233258851588\ 89333709713631089257153141776197832603375010902628406641580137135935652927808845\ 63059517700814439941146742918503607488523666547448699280832305168157116029118363\ 74147958492100860528981469547750812338896943152861021202736747049903930417035171\ 34212692348670056662750622905863691188222890317051030540688209697087554532936943\ 40639812976964780318254516421783473477164710584232385945801830527562139101869976\ 04305844068665712346869679456044155742100039179758348979935882751881524675930878\ 92815924349219754538766830568466842077540982178124705335452319479739895332017598\ 86402810588255576980043971205383124594289573776960018574973352499650135093689259\ 58021863811725906506436882127156815751021712900765992750370228283963962915973251\ 17341858672102349731776596945428362551937155600914368032931196284254662840314244\ 43706484323903749064108113007928489557672434812000903098884572709077508736388732\ 99642555050473812528975962934822878917619920725138309388288292510416837622758204\ 08191893360365387528411678570372098971883298692192781662967584458017491180911966\ 30481874341550677908639488314892415043004767045279712834822115222028370628573142\ 44107823792513645086677566622804977211397140621664116324756784216612961477109018\ 82609467737768640617672148429389497667138012278894130902655351109611834701256519\ 75408070953840609168639369066737866272094294342642604029021583173450037274625889\ 92622049877121178405563348492490326003508569099382392777297498413565614830788262\ 36332236838070982234601227424137903647345173592521575475716093427093519290172395\ 49214264906911152715233381091240428121028937384881673589539345089306977155229891\ 99698903885883275409044300321986834003470271220020159699371690650330547577095398\ 74858067002449104550489006172718916803139452803616563394157133463722255047754746\ 07560550241087643821216888489169403712589019484906853797222445620094838194915327\ 24502276218589169507405794983759821006604481996519360110261576947176202571702048\ 68491461689406840414083358756211831921083800563214456201894150594578002531874747\ 19116048406779977654148306221790693308538751292989830095802775541454350587689849\ 44179136535891620098725222049055183554603706533183176716110738009786625247488691\ 47607766447014719307447630241166033567176556487444057799053199627163297200910944\ 92492164560306188277729477507647774464525863289191591074442523200829182095180210\ 83700353881330983215894608680127954224752071924134648334963915094813097541433244\ 20929993075148107791900234612812233016179942993061880053341455063393213933964686\ 16164169552202164479954172431711657444713641977332048993650747678441499295480730\ 25856442942381787641506492878361767978677158510784235702640213388018875601989234\ 05686842321558562850864552525837701062053222424498799062526348401077432248817255\ 86022333020763999338541520153438477254429178951306370503204449177977523708719582\ 77976799686113626532291118629631164685159934660693460557545956063155830033697634\ 00027668515129384363888609082837614115773200352756515874590656702543943793110483\ 85713132944906049265823631089495350900826731544972263966480886180415739778884728\ 92174618974189721700770009862449653759012727015227634510874906948012210684952063\ 00251901165596358055242918020558690425968526104741283451846673693858002770025296\ 53563667216198836724282269339503259303909945831686655422346548570208755046175205\ 21853721567282679903418135520602999895366470106557900532129541336924472492212436\ 32452304289518846177912233806967423398069488727058750338922839509513520912310925\ 81590069603951563677360671090505662996035718764232479207528361608055976977787564\ 76767210521222327184821484446631261487584226092608875764331731023263768864822594\ 69121103236773755812213347055680595800831012748167396201958359802396741448986727\ 68458698193767837571679367232130815861910459950589709910646869194634480385741438\ 29629547131372173669836184558144505748676124322451519943362182916191468026091121\ 79300186478805006135160314435007618921344160248809174105123229035717920549792797\ 09245024799408426961588184426161637800447594782122408732041244211691998055726491\ 18243661921835714762891425805771871743688000324113008704819373962295017143090098\ 47692723749887593863994253059533160789161881086350598244457894279934651491595288\ 48697574880258233535716778648268280511408854297327881977657369660057277001625924\ 04301688659946862983717270595809808730901820120931003430058796552694788049809205\ 48430546761103465474806729067439976361259243463771999584386281239198547020241488\ 00768808188480878923915913694632931132768493297772016466417275872591223547844808\ 13433328050087758855264686119576962172239308693795757165821852416204341972383989\ 93273480342926234072233815510220910126294924974242327169884202329730326016179057\ 56731112354658902982983131151236076067739689981538122869996420146098525797936912\ 46016346088762321286205634215901479188632194659637483482564291616278532948239313\ 22944023104327728876813955021334826638868745325928158785450389099156194963247885\ 50350902893909737189880039990261320158726786378730956781096253110080544894188579\ 83565902063680699643165033912029944327726770869305240718416592070096139286401966\ 72575008701221814973313369580960036975176495135004028592624920339811101495322753\ 36218445007443315624345324842179861083462613458975912348399707518542232816771872\ 15956827243245910829019886390369784542622566912542747056097567984857136623679023\ 87847816120147798293908051315025817452377352951016529693456278612224115078358775\ 53733483727644398380820006672147400344663227769189369676128789834889420946881023\ 08427036452854504966759697318836044496702853190637396916357980928865719935397723\ 49548678718041640141528148944378503629107151780528585758398771114547424015641647\ 71941163913549354667555935926088492005463846854030280809364172505836533680934072\ 25310820844723570226809826951426162451204040711501448747856199922814664565893938\ 48802864382231384985232845236066704580511367966375103924816333617327454727577563\ 68109773445392758275605974251607054686896577945305216023159398657809748015154149\ 87097778078705357058008472376892422189750312758527140173117621279898744958406199\ 84391336568029772120875193498850449971391428515803232482302134063031258607262454\ 16377652345055220510863182853596585207081733927095664450114040551065790550374177\ 80393351658360904543047721422281816832539613634982525215232257690920254216409657\ 45261806605177790159290288424059999888275369195754011695469615227040128085757976\ 61547221929256559639918209488946426575122887663303021337463674492174493516371047\ 25732980832812726468187759356584218383594702792013663907689741738962252575782663\ 99080979264701140758036785059938188718456009469583327077512618128201539104177395\ 09182441375619999378192403624695582359241714787027794484431087519018074141102903\ 70706052085162975798361754251041642244867577350756338018895379263183389855955956\ 52785722792615552449473936366553390452865621546428834316228292112329045184221253\ 28881014158840616199391950422300598983499665694635801868167170748188232158486477\ 34386780911564660755175385552224428524049468033692299989300783900020690121517740\ 69642857393019691050098827852305379763794025796895329511243616677891058555721338\ 17890899454539479159273749586002682378444868720372434888346168562900978505324970\ 36933361942439802882364323553808208003875741710969289725499878566253048867033095\ 15051845212694498925159639207942145260650851605232561486193828248983800081508535\ 15646427617008320964831179444019717801492133453359033366723767192297220699707660\ 55482452247416927774637522135201716231722137632445699154022395494158227418930589\ 91174693177377651873585003231801443288391637424379585469569122177409894861151556\ 40466095650945381155209218637115186845625432750478705300069984231401801694211091\ 05925493596116719457630962328831271268328501760321771680400249657674186927113215\ 57327004993570994232441638708924242758440765121557267603792476534180898431267694\ 11103131659514294793776706988812496434219332874043904855382221608370889075982773\ 90184204138197811025854537088586701450623578513960109987476052535450100439353062\ 07243970997644514679099338144899464460978095773195360493873495002686056455569322\ 42296918156302939224876064708734311663842054424896287602136502469918930401125131\ 03835085621908060270866604873585849001704200923929789193938125116798421788115209\ 25913043557232163566089560351438388393901895316627435560997001569978028923636234\ 42026927029951543863190051012939151317739157026322345033047160871983357314572762\ 26633938477267013660962533661702858329186641162298822215333733574147268614522205\ 17796036021657629209679553065650253799831449502633050062071908889898464361959992\ 64762361083185050237498647038594910246866212417306827361157235516477242575475023\ 52412468746074851053353923438703547870019701586274514903943581778012410826464461\ 82327292482674936228295400423592366266785816674032376953223354081043426666167973\ 88659593046520172457610944955660711670543016908957146048840136794913945664938446\ 46298912078940644595782507997928878739392985610180101343882600283820398139200927\ 16351212296992483983946353362236959988059362454831495591998273144066460686038967\ 47678466307142387985200612209483601958428286948941149568879944075331886216247060\ 43127847588617179645038305434988777154546903665027721615391983839969917881343981\ 41944368809250111481819798402261166104607318032292355376603758649849997454020469\ 37917930479632224861390601474136372303392534432566084857015647848910533979262896\ 64177821919706286664135844377802876352562122389353466102826235289263234488363199\ 40415928656082972859882120514749356839216074406481815370670988971910860608364879\ 55340049728172954655841960826021563040719014933250487378970396127053999994584598\ 84586324576356850465902800682163360223018811383011208727253121314804106183630746\ 33391723478815558419942200436973479456746429373159029901632147691027604795314573\ 71335306209333700132749628766660240923781444622479118612427736288472117262538601\ 03658427961076487163331347200528488644744897867222184279861410512996912357518380\ 42022652299635148999201592961336958599228492147284059675182485820608337037517587\ 06963474517424844808950896189553107994754733303323880745512298961051117039180748\ 19309463129676526583523254006198015481044159254418528609134434118408385912583154\ 97972011173508254288351994205020708970629131932370593611869970876740521536649684\ 57182466406036383021770532848514425324974546309994975775831045210121951158146067\ 85903295807850171689359081326188293931649613908497264994236206250488864434829436\ 29519523285183855092352888948498775138102232008825516003364164591409282318882848\ 54537807547517930489076000255121414706370664025018725479522771414250506214317261\ 33512376491993264368219026824677798278050012296677681338164667973991346578705512\ 74534394694404597077719187995407395427605915813079285212741656832828295621599317\ 46905895821846222133111237435283709695276973766592642097014304602626280895117497\ 84920754475292453555824485037081169662961361437456685569229108353804447871639780\ 20232084023609370922254140477009691282049160576777366973036653649883492364824728\ 35676387541329435959180975529726337169707457248356090428023225272687222700646793\ 84555006784008088065427716480324882491803961614497071569285030997191355977454006\ 78466656398246586364144439671724823401802624396178170648336037171760595399177104\ 54961305646287727491308779554338932431913693952814138123950135908078982276584882\ 63250802618524850762756185439484575939335126157545942937679620715509540065149312\ 86556444370865543977167354218105455845369761896615555180417133010674271473743311\ 86161116668001347423577154956442088220552625312076302475402749012976651613308330\ 84658587180009012735858860387323290477368590430709381480698925172403629520614399\ 57593715175787053504534026486718715408551576929967042586501209349749945808407148\ 38200915888065735389239137040243506196571510983480529860982551109754928853361155\ 45257393042442696791158576341900753200960006019671663122779964553274124613827002\ 84220765144312721590741133408003489040762584919284658858041286916386515479642977\ 63251242652433570903732799940906080289143242002162784031375696887933193271792815\ 13651857484816495100553151506872893457040698364864908926339042055054701374510871\ 32493449799940863749770127971602810605646534257761336751184475785823961876512808\ 94724868512789750831935081098377719941036701024841296638857887680535961230332515\ 79123980971589651437698106274532939294318318049638382537268302829198532880152940\ 71433723208632110406164435835438266486491721843821029351742455374550575809075335\ 58820252056024537843175435538531994250810021714312797654628419286910387394477602\ 77789370517385306279744047722489086714748028855582994177874607142469064610509456\ 25202212825832995025564260229990592904684159579116792151285886032829684995127155\ 34465088782963276118039067356332662241230936875737466342521351706796949812896179\ 44100773168818654945023743438512318640838968116604957523873700674044602618648483\ 42534348017257039340592723838919220589031998906185198421038308216416528610206873\ 86947447622822706715620808975672807761093212837007765365923625213701756104920104\ 90647926435022313362357037672820456385127428485063107497131400081807697966418670\ 92086270751758290904938302420460333404925465658358444295296337088776545265587606\ 60624469378326102878234267050061871258419093201617639875665134869271540100850836\ 47269535513915816758710288791204561224527095476616464634423436358506846144301437\ 37965771779082950287449625309471674027094862405581741465010467062797651780375495\ 58990882669374665017899340941580175877931297764268912428095816679869262328136255\ 76760050205090619888399123409239688442164270550778132287725184933490420599495679\ 26460565911025776082501419307787196588096224965245820155681523746669946396754909\ 27159042795674347394047138884034570033397714655556949471950710357752508118665325\ 75065892797554153301608090613307672021657715401873436452152566925919864525536834\ 56823553070598162130085504904574946212500558610031219155224527412244517230546007\ 64895687440378116371204889424814424573838812216469939212301308229376562195148119\ 87478059283006119165854697271444230766548407257874820601218362249866393721509747\ 52653753967735395851984476957732214244609798081017294862506075465564785057434857\ 46737609236566345826554956945008049466256006830033039697919727289785487728986917\ 00233344838111143624421997248348373393817914540838366741137930672543630607318584\ 21388931047329746129464330913406615122087253374620231774863799904011403703504128\ 61126902647363933972738179243157455031071860290464651684896649914849558362752102\ 78398095989067353453771747035442365355445747127447923214040603969451728451202645\ 05187739366087820740427979492937157133826232579378916797946108593141509568348629\ 61624018757558941301204073786717124377291884875201219129108103267491540960406487\ 54248927534521962074102425291913766944369032132103550933382245399558387757904745\ 51175896508802785493729953647184656663763691900135139867974638850946840528454914\ 07564794860564579206494296178297419619461097036293045309134667162384421488201894\ 49581503029766353579703388699920365905324047373120549655643341862622777074389646\ 42317957967457795634132283078491602681354845462336294905591488533788039843697491\ 80713360895800201231109916145561278971286295284582090679521943269768969977521270\ 42336429246818734853834742889330980560103357922288676566480206614652444443461774\ 01172126439820562310243124840816832768854775304579417636166590305855258136611924\ 90196991628024964540860533212750628406233981730540193987593512157119873066361784\ 10283089779146732418239902330676994111916249584184821290161741884890744574259103\ 28510676894545629386475573889945635494325985390253311832043111393820576601242222\ 31752954406599632778548648529847420831796113142908575604057107282129589064023059\ 31907418946110255773607562277250486349227222087557966804673075308805002278223894\ 68361402870663902607934434443468629455639610312381813698122879437078536838850659\ 91350269806133309340949617935630946271998532016131931538651084527217868141405865\ 72232010017459153962501788701203805098164119780148853692024087086122573636233064\ 50225196123397499236664073545189104486279946218881558204238658003080110689009723\ 86870554525521108299650591612453434151610083544316269170638441165491024969938807\ 62448490819042269804160074405392450174036209847483710949092804116773547479425117\ 69672357617318954766059698481314304490693914473657202511253091340235031657959272\ 71071402047457921813126432679801662762135397873186867845166464090437394613410583\ 41866130194515206728071388017201750465345177683567166246451096874716792230890148\ 54973165171542671913470177900964650371385571369061497989488994188845729728287595\ 44639035990951487082060585723385141586276742411497951540241559999383864723301215\ 96245377182900950030617269384713599791193454044355416529598060101173170994161856\ 36155026578712336935553259632328638430930540914525165204987654129894537133171429\ 73795506682394318732826782930749552668645632087437685400955163673119855585200028\ 73697087726788222240830142818294228089082545681401285437906803150262330031355435\ 70841106156839051943858493032597840600258361327454785141649585558622625225336032\ 16747669816204218273393852065937390968852527871454061426726582621775736550483282\ 67368597269217457845651924361951505134294767813855422501312640796469744649758696\ 32268016274093312319995315408701199104881239311172712335296437902042142058375699\ 48496127668188943766970732405110648037171462582288856768332108587026035298465103\ 70844972539194851074168242379857338076991793231848897846533495471513960873594311\ 48393232317497136900767515061983191875262963294069878067300582894318636140853643\ 35451825136217333664699343258603359016092928350443561955601519525359038386696329\ 31421195319086416029491768186604338108617856893658652762599159576463089057484057\ 01242187456118336915674440027198999385943524260688231230651990539334501570243909\ 32025557083058294784881683034322962702271781103413203729868628557061538361925527\ 48513974514717282608166467373122237687789655395096239211535388318181125900905930\ 70376552101723383095658510347162234372147094523951238317789818036805766053708172\ 39599449395445110073949600866063140073697268098603531480280356391792592955140355\ 56750901346225565651200500040388964695765286839375894326641359638758981952190977\ 23309263619292928688427150600953821721493379274424742114989752222918515704297822\ 77193409751093199688272829280004463814753806133897251199573509599044511222734399\ 71539673040298002820751768235827912095052102735663217352194962362184727464644960\ 22614998175190835220330634202159205072059879503523922819586916515854244992947454\ 81066050501176252069723509637020197526019852606773842218965246052998549299953387\ 55313295340940138314907468467139499677720572636120372107374342868057717426582051\ 29408096995956353191128273999009796053960798443752311650773471977780957043388364\ 52702396442943094663156239040132517321657829215338301025580139371525988563293477\ 55255719232808344589151922043864806081186297548489573356845798244178775602686253\ 78421607331592631511700654666479296482728874240118029558447112869542529777925384\ 16064059274273135088608366963956793552430262618868857520064817604977259611300739\ 22590764478449738830065772275665777414636443696093953753681025203011970464541713\ 41193397573510378873839276937556550684521053667831828394540040197553472129245038\ 33360038173856789212817138027497902255432743261724438443835191659279500017136825\ 36758546723469033733698464059513247716076530428565235979898018682260049948150428\ 79710747667645929446038640988204665343974190422108476050665162566607895047007370\ 03648782684878109437041237808208672032110279836373360905865438186029749287811554\ 84266146415144583159391700957591524192858746462325799289808212663991897979203096\ 51377003004333255996575709580488051628031829131789228353961180609648076058832439\ 88338519278712663084374366551964511408009362478522630426303332530214226362339535\ 58646545567952000386740056413841503316500443196882791862089512040487190834318318\ 72080561388048272209950449676983025946244664338734008755934808078312171484872268\ 53377022052608080382561296537121309281428683267320245473419184095432657707518460\ 27970701058154304742603541295214529990635988000113171975043316669542398374118000\ 58621274994165791632889639236400118340323406940428738845184765282641012203360562\ 43231216355689759863697496475965028711885857843551016875046246365393245524901540\ 32140569865547304245954636331164655521637183906414415309758712816906121425865963\ 51957297792242219399863533387281631677532938288828538833763223323803664508949987\ 47380600574088983607539281237219292218879353578281400690656347782028875078818132\ 40782624394992260288324899145727374030782190991736334686587324734925180822573968\ 05457081246116499538396552745369148734095263017756736493650310504001208373332350\ 76971527125231473234337159823811549829020925243269810853721487178387223628469680\ 85831693638384498765389697888945985515666277324765372113023407091352370001332816\ 56929327690078147107864309790657844779317896054314320502445959789408721143382595\ 72590506761140837775776669498790344984236168335654576420399106184536189357501017\ 10017725620355769563378953758665795785319349166712506777600201116719824482067962\ 13821363747999607838894747697685437117948202138934986118174082899084739771156621\ 95757301667695316163900286164377443339879504659246496242213615825569797905454982\ 20365919158604912020715635631040315538986628041330966376721410914045182032024057\ 16711882043446479392874980381935293814505434327576436725219530094774825624593141\ 79226051370176894023642476014898319812498818156593637676255006576938058747631406\ 15448155779212535276526235730433689192685254054526262411911016156357795666960065\ 90853227700270327518712187717125280345612683023510166754512475487713377371667955\ 14204267034673510427911733846292378010277610416833716861842537265620375137328435\ 33633565163220145118782869823125951421106201364541930300041723532889519178318955\ 85653089961841403637276624261346298183236671851622761292906447484264267072022835\ 16846142659205167622312078308287364956747531477318280956792509574551832086407200\ 34073280476977250429065166775862662137940822216639672500136596904942830895605490\ 95125596898792210177465881794877434523159035852603218330966709911258339348544848\ 72478489899865551061633892866899967002254557252011924689633992453419305686282872\ 66154554977591171677234870273109994284553066290629230944606505961324859550418277\ 93867266851956463510407861783979941387203353282784319564570900789300894702792354\ 81051844018217279975760679807456846030015081389234525021050449348741464717225649\ 95367164821236866037139904194334377622398866638519217567726283183853832672567439\ 80731998946648066449320332566724813016944238626026093859526218547382982965566416\ 72390560973523741831071952650956837956707426467406838497344751696859357892196424\ 16124979114398039590666990374976005078576331036100207225998255550662603112543323\ 69339553635821828983112217091453159478031106795275744064049680687878041449978932\ 31124540042356279079504960535323207987979466036248168633614842978382950383300964\ 30888224575734937428832687311310335645328966004829358961398637161232521561088632\ 56469920665387383737829382390201767226240379323264372364963657655017444240199111\ 26611218540395116166122909793543509424966821481768867615199335393023759742682952\ 07970549690201597108189357323757477303432824688714733897849865805712867879245604\ 61867732757210410139280459460173494645119897670695402692632597708541191901569104\ 59955522073512931381871614054990849095548454194349319173444305223764693922634033\ 92646510051744603644570754463847534733966705557908398431759668907930084657438598\ 56191266312471770395539000662450582533036177906455933427415574329754738243585168\ 75582912889347240535707134454582229719337307582058971444728890897813407541481107\ 31186122936859973310507122731462503393873897738479354688284953678332216656064611\ 03660656659313231195501369485113843929121156157449854781600361895540962234461692\ 79799494846566361483306991738295501446560634290373595759154695585272538607318024\ 99652816768425443425889739073884352974610591022393415807247569583300801154557691\ 63437623074819008751508360426714659037680679317715318450944455507821880437147901\ 72540487375906234143811810917779958944528511109543124510076618842367399621924560\ 77969511122779364407990415119514440661546965008576217977093190909583132987787434\ 52216525503444540470276316971436876246962004325852200335643684869288291617928781\ 91424334756547562872261243516643436919624897569681514147278887655349776980064808\ 71154761766945959111922927429454384882497333914219571616022292224906364296597972\ 09954719580002503674675489465028006455603137064421741963422783187804694280404749\ 97992506784403449261707810186526891856005592894784356202305065620907983327840544\ 09933754325466268996342381853087817159138132409688240004900823384875229448700461\ 03538188341821701517877946850334629894168308089935790820340259698157101915212432\ 25991422979939610174887978878302811921912387279223536232950340970470263845769505\ 18160676657044486620981891268715888390683926816266566045504069411325517726301593\ 00546811862531404117654625414748495420965521832926255083589672181163544183138871\ 06850401706146847688741355892485349512361859014754597989781338167841349892570213\ 73591925918938505117120958353354468195902418584460471378852709468342796348047587\ 15657341569089644452539579525183759731421602968163841208815303609996699618863979\ 50418069721702975326127703724221774423997578607522442757679906248991213404964748\ 89285918528422833247118694861120447658840271122911279114792252504327153033684366\ 57815017282187860553032029987958807921737926332546835292644208515314637982132209\ 31207970351120946260710073027789120725667430842849492024054503917506431210785770\ 65441187219944044713259661653295743027549410956701543326099389775148130009541828\ 40265129893522776019998300410614171832108019578950379045932608127678813899473832\ 42275125648493412865310710528686896486440352946198326392195175992621585678533081\ 80854622517432057724041779265437756658172231185312218755767693801703046218276691\ 46776225014475875461514451431825592306694306260373264656836355532616033171543753\ 53243493742242509676699722095691829203992217797492440679265480059106156747895005\ 42998017635444037775787063172034013555643683051468017023738859881563516237835944\ 67435566276013514967430144042041517192887237464786738278197182703598388603661618\ 73572627004933423492861172405062282751212754815542642284715217354971458024738147\ 76450360970418983518376319628772221549149786891339743058279126510663209664415284\ 38054008727568992633244723009447752915292844413484286782907212369432924242088360\ 43639506055067587721243141027286052838756138481024065262572477129997756946435000\ 56233401552208865282718695548243000376564479084893901000536841057522363280370838\ 89749667549341111989628841343764816576275551624938581979987619059341059658877295\ 37505921354802824063847997251499460206485037420745024330993731647827119117031718\ 78502492156281762509092095744129027049665089185824440951849086836244861302746209\ 63475379322631881671526110781260732811062011534497765815730498778677382754501731\ 65896627327221710231020444689102004159483035267539082000099323700359160202697273\ 58967287596800092431351089975959771739670737705545635339787762830709652643567870\ 59183966640117154025620422828106006794410917965394168536500527272432453699734511\ 55161758421415997019097554830734246349425709110977253628963700518310446086702859\ 04915489785451861640485967121832187912603224446865674572002909630090732796419381\ 08736830057700848854987632642420122577561135179211206970609858480637530014330320\ 62979008560113174534602168985499355344812429007061967707035833467717189296096500\ 46081906453813744649270388930650195618060462577300950622064469234834931163196871\ 83946068823139940561499289688955368854442601597891759488522130483332037888265615\ 58879638240876906542931930466777690810720489086401931338095243898717372372530055\ 21747524415947922113766652805888438396054147567486987337167355166104543042899131\ 99343082099165015964765620845632436308178171260221701634777556411144180359219308\ 84712892557953936428778244536540481659503232237881780602859055827000867386848837\ 50337714980917164444693060308390225962379946272713289768929936724536553233482465\ 79421273402707056538851193621576265629886468443537082357184808424713839752577831\ 01287855534457080267659017382060818735190509984996309659107934323668138539702028\ 21394949406134489952453908830903545787795663963353463066176422602202105775621923\ 78195749462971643681534921085707270631642732845357749851399463715941895372082676\ 71471332050925700993356729526111636280008058244097546017085175764114440793957202\ 15248444116421555957828748745424226011844865906715664110802868290518210612860404\ 45475051143892254443914386819488133792825449371700396553390063464483310103727144\ 67523577242603511656995157739676429135726375358735016704706133125274508475052133\ 59793783861950188821929180325547521785176580032177426333023524832481849348447808\ 43978821871354242752913348569007762571896695622806296616834700668021294259786170\ 53012186479789473981352503000050801790270455187977935052946992108027883296491603\ 85012184940049568696199707027524548531041667993720684674742262714439058761479088\ 89584182416037374890870011281786063162415194429057278667097563530351860359404758\ 76975995200481698513044618610349811851333859033663164211875013087748158706762287\ 49311300865732973446153743975659991079304994892588234011350360387511421993302025\ 04777680857549981006888716078773295305011124146554797633463693155111583435711003\ for (auto i=3; i<=n; ++i){ c = fib100k(j+1); //相当从第0项开始,所以多加1 s << c << endl << endl << '第' << i <<'项的长度:'<< c.size() << endl; ofstream out_file('Fibonacci.txt');
数列第20万项的值:
15085683557988938992636878948173134441848416561658689740214300814007875839363948 12351619099573209347117178105179626630293777486618950684934680499728298924933059 56095313880396565016749519020734162826756867545612008745257856504784958722654132 73367800711235597082735947816183336948276642243536623243673687653137709786396616 59359613120993580646300798217138405565931635846450773386124385241345993441...... 注:以上这些数字一直到下一段数字之前的数字要到Fibonacci.txt文件中找,屏幕缓冲区不够用了 63063060268882950898006063863259047940080051640276478940808101356743637543087750 61614269302538535894126497826926386083483483162283914994717336952780631925488805 36661732689298627877894947660201648575477486296280991010257241763060252629026193 18757536005097877300614020421303520223315704282229291012841588236198124929328075 88378736971374512804563187769963003222174350234153412339956585201758283641188558 76514537810977185620306785770133110488715020268737105647858149645930446814560966 00244642164720023932468871153380653331045026576683147904465896537983620539736701 62914699498640025334993961304443857190945601399301341813825492661544633049530673 88280437282102408558513534771639434052739235375619617440444273242500228659589221 14022481177402919976428200856641367111625124767255343298215148680026395236694791 01963031291309349308684654823815911655931015257426495919607236093015539539618803 92483435775072480909312638016392700381143201630619253541178615601875860118998959 46151745076813946342347171264834439030790658733973565284695379905039599657764047 83404560686838485044523498355877298685127912626283269855399154966706170472077951 90294713756895529111860423587295431711661177392427979167315728471186440870368234 23988395459105134582899984418589270649765511667674460748262108357182608526071216 79140703760170538450827950976632491072629719509089924705711340871348025578925746 77222749425515629594235023797178412318247368734124991926842279808185369151870073 79053465561927638364752244641236000006961926777073926861715852728440625417407975 02684752172974748222181366666616888418956075505683679832621086352705007087812570 91905398133130665565726444444734220257454768694175011637202918599881581769231215 73321230867774025809210868816366172191287606908620785817044757251529913541481370 16309404347563628729034417095334900513629474110135844384255631577393334347949734 04316836193092139501500926978045539180666725805230828582281722610507717870772076 41970672530597293756497372182970063224124262644991577525170381433762354275462112 17122133261510526034104758400318322815540961773330948850269204321048665261812678 34110350858195312284472831756911082150045690426825151656110752809109786733872473 40430559277116853507814089140129479574783612864436811432524345861883044897453304 61348147594293727056251133058248640236217498111060638098513355909939643587558867 11354020347308876284595515203760376386851829199793400162838393611202358259053993 53977299754775553843070550037723507740933302690987267828000178182596815067485138 91879617519501387410862274375361014865812410659140896248554927900129914488214133 50128730917754801580736426821611315175912777527669877468990060258593590609978865 16010098865810862537551903719087947101452874252051039033423813795888466434728459 57048005505719462582978712051150687498053884474647193964018775496966543583238442 86383283474208241032617121614671823379423457394629887184446975549355109949576733 84940873040496253164731306468569189448513191726106117392216302413006916682805683 11957178789405929779641005661573127342443968474680320473212501184612329300575768 26212437237348718897522689560844248024622250789250951760959709981868617376641878 57359809046632002414986610543863385941075554734109382040936053208952421373123642 63144132388602264426443643806965592121609359332775062427547709589702506695425227 18147099411893996999524789974678037032980525474048911461525760717059829525696988 19840947600557784354926461670199796493977862797968325487496971530507555086685274 73608698655600843639574384388846525763780239021861026633142194297925286897714220 01429415796156243325940357371859123660536055782384148367005834985670820958270143 55655450826980441183661109944961179406594589830057953170983590408506029154650345 01695215687955337444036365859164879418205274105576337131253319899452429303896954 17374812677649123360297977686173868985905856782862139760003243975248921023314435 95179737752595216384902175200988078820164337166176359042219400316759026907268453 69495668829147104641130868961446439004208658473423759066523603772952777464323924 09972226773898020021400485175821434227788237636471479303364734335813524332670831 99042225904303880111656148602509488637475806861331552492471283047731959964090334 10148945420412352271434438339443553718777976301543946843557540685284071884959650 93775001839513688321615362246861217723211050937080054534564992549040572405556973 38716328067948009255788444761516538733847587462446472076796669132054328285719800 54638350252063885374806646042313683177988262058994702548823659720155511361124890 39069677107154161437209897146402617487126658600893008336249040732486942583024689 53345984443038767932393793676625816999652448498021997533552670218330359379294371 33142399448689751898932792181283122809259567580983466814580649040865980723670577 73932885760464438548480739829858786154906580262419089664483653218076121119288936 38791859669273632137010021053394822656163220355661606310637513293860438388562425 70608944601594320903630378882399823995748873699679184691375775635125955131314131 17915595873160373085315907898967276173401206495889335453212920262843178325286472 57848643945487420362295148090389716213353440535236324646721520395044687760018202 86726220503898121550140765085954248923212550760625750056281915107499858177469777 39199475874724490183186918910372306630651938235134733890495074757429420924492887 22078301220369257508436722560730373519381475634593646148944030826105707653582169 14909019734269114714262352265436691657482630341218015620360469144287219688718510 99904296623553098405213024102035444486299477768658352481369015753030369029551987 30248988187042512476791199801421063934019146790902071068765501948326692286039255 18812393257600983524652611271281863580458823913139995793212965904538959841608163 48787510722631816730099857463553719963120455039569570032982148016677570250631500 65749575035375709167366750578787110202545245842344769859155637270995006069976751 44402157146662010726505397280014779467963506188391340470136006658732984142494419 22222986168906498629350156213348243565861005137015747350040746720794360897104632 43887666432098779232234838040566528356788727748045213512984826082019936808333600 12609176206929661977977202722775268802923395540422802013115354123206772908755743 19449945136455871651736755475489062119607374771465446959619080295316385187239381 27497739424834534778689422640509718404297312575915803779683583129790024216555340 06004342876656537758405129633346761509365676774333721358572102024736779795616807 53246748294601736865925290779787324703860344260852652062753330055977550418600725 99570075814886359165475821368365858383801057198120916118221253470344586173614654 34400726754494003751711026923954914542866116448051991680056998046143989152564829 56548007152702883737919894061773294576329231438253929315805515480308968061774431 36298992730146881214397272219616919191556983530744639123426991223096138496801843 44585341905041652968384786373401610138320604003278373730402445772458628637883751 01665738385912684710260568039996830971547625229030246635927399914591185533095136 10993039362952837050420225636128435119917414081139158889409131942439465974217939 34988966426385962846824907392418213196728851909012988546629348603547538836348239 40168204752617751530242000575850250539902329844525651300932447595168562616913256 32964250300047795290823853238900947887335763368333603275221895721986731587507932 28011523103982492668583363566551052456206566999937759044280229221691655136229339 66704238927142844200019171099309947762479558881008423328812453341266604883374891 34099998753146467531902153946732279171225037307027584017997093297055643045356341 50154185669134173256232638168355678506336740744848848806688229056629200332073292 32436600167582132974759527323312792088261840778888810824358205629168087088452452 13494610355755249308296300516185592806507671823969845687300346574117332965602159 58151312115257888132163265509151796005894478322242050003187787462098704714758403 76861190015192288332550180733850707906532095537447803921280600790877860237850959 80258897480359983045834143185337232461624089722262828058238715797780748276943318 36308602435070955805041179975869373717970577241071814941250159069637777305012867 39829906600802584073230780499744902216918873368829387628581344620697477547555610 61124148049962199097283430499873811221525082623669624653054044617090638022320379 74428436575720413054377250726826298603813284937721322876009904633375883875435374 64417896679223669069365195002368044797955021664071873286485714025049386237555631 41765111864837225722389061557852075603314099606110109250737661022064395053307377 60531039362292457213740488803421596709656053989651043804138103197050680649078765 62838723078981847838599159519066909510759726209847252515464462278175665518817161 05717327447718528506515897864937505341426277677382591993206570898125977061431944 31295966806077419295636454047362760626695551310873194075374904151476290966683597 73095202174581748368910751316245632799248732236188680339300620418137994636059926 00013923549044251803297724959541136197709902037518558589111801340396142231176797 62462119702046501705602782081737823421834087937261163122969115268116621717263460 63930524834663708270225373938391089842254538112010523515294240639944257431537945 69564830501579886924080803609348106618007877792083774884778311060102379156288237 80658655021673117859058743381186835913124318981264383579504217082951951825660913 61965975946804455709510318717477788523091570077781257312564735276716749382017555 69508138715009912691543273448984096807682476492274639658244316117540914305744599 05581348696932432163654613105605773690195395483811594614570664118031205396465871 64078559637706726996336550216559224447570134657783623755464592247569572135728038 22572233846799855166984947762797942465172064734653540134039494201856606325342597 31205172173733444243567044331601760157259304843338270750723635577032657572107164 74017331260804897548948360984469330471127068798391591775623328312121568678342257 47940337479862921892682566159025292580858300951506536933824101590429889249903651 77809329638816913872829742453168432523926241424587600098571954146932579585123131 26757935010158342252953228333225928925546917858792089581720528588831911122275461 51748205536935801598875594212732824296668164009020774255872188519867837458189890 74229734788776989853154767042959932231534900232531504378206826752252542900210901 44661086278587828417439437127882550619497962795512555645728693902205403924161301 05050816562334386266952792715043923294763854444750765464502104456260383861521979 94879072842011890497579537195142603639607650869017560837950241460762700072332649 04561537289187555333946651487262992862353445884872903899256362192840464464457888 18678570320383718865393979661902610347567676866479687599897618560138607847935069 91890022604472220521359152608385369840850373227480519308708056335677161751690517 92728774040892632804591298181450412076452644633273200341521978218997359721363694 34443124721035787878554394693701749555135620202337614143167555805464051824732029 64583048581593327813747898386662835154540297452583906471922274025319837342268888 33981307884793198719661320669657930253936876773123462526766464109434299988067441 91973922533080314539961169743571846016169331752747937227202777398687010644964568 34293189294493885245640679782312167317800261047147271910339878095072678253746307 15928873538598518809555387090496655954148744692466144302237604829323582446172592 36596473752450129564038664181973674889483868212190871326375406826953846380438706 90078346051449711592593987535140280353605441459604399679020644128883768739354944 91377619686534281727822712268086656520820043220810636095124978807651506415467410 11199979557759520154540392619304368184743255011441005655683319810283148446830283 53387834709849335350634362505403290562789893372412573522793956853360035621060683 60505291363495342544728617836543983771188351479824610837564115441916807893339230 02287994177869628345374633107787346760374237241996441495323686969757657662597835 85297316973206810778698129460149003675494633232415366503591300424279464617124677 31396706946788170396900113127679820113848718891377404182010034628902961400041850 37961726461229777285500969718667513417396493713214000619787286422614436619649449 48697253357062353415621589529505080557474267684767863470311753566249084241432980 19185124748717768773763101671783861716061336381179066443228229052358302075907259 48876390898219380222753411298922853363075490426735900493308598633424606370647371 46502716295881606941973710913510928390456974594780320408948339133221712003045036 73882072270344188089460756669692220251073201948034132743321679542399148730835817 33397782475534144294364121270591350568147293910746954470689317570351347755172278 86976405292671889597238345343885534967922024432051183622341505724490711708911545 11906052155109155162779709819549297554054958943609524369571571319557603197322858 31152953522162842800235153570023458044985554543058503492078930862177062003838919 17342351383035319503637730325234452522426699579007898212473905018507468668558439 91857906159073330757847398280197715257362683148113174163291969052274522286928820 11996857664297899862243221074734821846917225648727841956233573313997622440984621 60272117499776302468736336511435913190757402371806829718971054196408585080128575 09926922965209778889380764490185570226025205181495580946679471946231922730711947 62555800852592405186747289712993414287221918590618305135368459314587616363281722 71557976615190647179226636711580689613082796997429396295035244285973834217299600 02918172473375656117097770397793051839204955959072709161183564629909982604665599 72804388236253313408354628382018094232815257770909094862785076998131531004203204 99591433302626685871619086918985341457493110245586530805423530572373428136188439 74702643552706546283439536578335099286818239867194705323002158727258480634800810 67172298682192782829443761272899970683077358029202572635055684626063755461280270 37866832057396532317905053739664239221199410111547957913002256576813232476658646 33385458723412178779241323891586379509047449256847786234783263663496624645507241 43521390634740534039061816738936583801611815909960910905823083217161534633943515 05178491824564791406832334554184971801993279295328782906346939919533276276021677 73698923789303027188811640999908991517777147594215166081379677997498608588614736 86006099340093932142033965313870431645809313315572048407764049760656201010054495 50014510239615378070378679263886818904640796496861879847562073656712344802365831 37859601711566871935760596541102118582254768729316690416330734929732206712552911 64026420755173410689589480235358042785777239444130547001770398465070018801604034 21159067577845994014033595486569964331813620785601527951636104703257006335171381 27625606315898116491079255207735934389646282142520695578332964053335695655702036 41669588768563851218381175154850877297653616475740172383057128752671979584573589 65592044029177464934748173141350591486050664684404284571337317635314735799705291 89868880795047234967487628732917374507104446947637145861742226974572812403986222 34408132273503634242155648871133395744657050938639866916714280960059726981101933 69257527572410851559847418596878601701209218346738822789867492760576828818076842 44848958952313593729199820342735471722218420672024201671108861401094289601404541 08616747174890579372473820655953642933804520588045482024246108284984862069210749 01679555351807076934105474247609864986100810865909242392605651365395496851959032 08100431263615384605587955915993892245578806347288774157615697652140686800759126 21238789825639637994122687748188407141627827835475185699069175421127783624222333 49678876317027558873868274361550791172640030907816685368310014362764067291979389 93775584815425752331244980298450804830924598476884649098119082204404690473237741 77039497813018405539411366900459728796328370526663682364735824451816520433406374 78366610795195982798063828625397616910502798241166920799501152693806128302682459 14476929043386341127902066798565170023170349944324836038809870067672625705690140 22494815236753209426787968182307692654451009535436412067564999895706434848879679 15245184378275830112487771642974426124993722493752119096403621265359713798007445 49107559583660269211151657743051658902079457388446123746781748014565976976048839 61836575114092361515967148471826157744963591514102011004486188126552427850098742 37973549574850578445656759631526525273512938191078609570169084016798015171772478 56527438025839221701638982734159394553304711950099507880543720646569818879038747 14555735773694171428843519882137766788936357807563681983015404302167913560547905 24789529738974039850258271364200354113150871982836996268674761177194227258507443 41024086362684032162760035033733882335990865933768719478882479570892225457675569 93868884124276779489103798613170431211919776932453997253408349348474056305928469 57182853903839819630054501124672714531880750538427549287021903451777629325356416 29793735740310572811223321975839274211265323056116418352575524384073494615819539 64251291286177626873641355786863589999763701175917768325226704916041748498390282 13979407299733885195737075315014526688259718393122684189568769973390260148889579 65236876043412560478308543025260707780900532389139961535171053888173313295475700 96930927452599529973111085725444036098131552673272922897822579140588219809348057 14437410339589694489123512461037672228779524454220074373594957929641880663548772 61373548262787488962965974967122962454717606507053928387506667087880355058979578 98572260623122302626417694151417637765913632683154956361579418591058632167169312 67446868978090417298036410605702182720394746690032246342577131454161489637228102 48267114175241221731514632685607507688849322393367030391450017818630468971232707 99279311443568298661273165638253755978360242808649991555126246184781103582432190 85224734062456714052502887603132869058356132138422707882297652777202664609959855 29365166947708724332740808886626678256490568501054824550943358328960920973095363 36729083137707176752558775495562901244645623804083100422916004123430544570271350 43894473858036542815259254757344136401683849723417114159187192401088008572981694 19174935529760758111258909764227184155112899021930497607881234857153277630747772 24366580933934567892536634546835998591562575720276312688516243734277814752987600 17929249089732744607550234417126814680281537934059988013819131080343586435864502 20951069509350125355134817547627969976338542905820363503754925936852799302420274 66424307603368324993982570582767121726035446481513768855348259223509510285301511 91534695682283922435992996263069870007556727745714167232280996441571686391178781 14272242161639236399377889453947689476525838550940473412240035558264149427067493 13232764068003035008166972852880312467865360124217324653798149584239847919070613 07242823991958088415085027646082607154621635550048279463316513973357824512636117 14762028385583654441183138030308768607592730893151891833758462110001667260350788 28578168198959637249301366232777532479767939646746798030459101228175214535631841 23076506951671346494524125158956629733869373025544669831034174977860766081246447 06831615997334778660038394162791559338971967418593529359029781987822153997853099 87331905351968194445803712006493970493858479246647649510582577174952903760556879 14584072529963130135950148170772005646927223463377300409913051235941103771832911 82566932146433117269899376111364220643503629661196491517873749781557901899783549 70000953198288032593981489960370531465319950030617636583771771162084611936027598 13826202368953337098883391183026794681729347662091845786857711282414596703566771 02811512514428474492069130880242557690693242955852774811330605454388674900752298 50049653086809685079380775339459558537968403053732301506360199554035783473851296 54075699550463107041176187979676737739279212807347902086924766058687416459933829 89267513820422554708576495393839333325551833031475218381008077369076852207183340 95513424620566535922323417155710126103675192747492337829276668594518288255731244 84731553544233351878200191468129755483891630143760683743538432726343833340830807 94551583248480865237680876028911028381875538961037104255329005796111783526742644 44557026781460972656035808276212031641532443726229309485947779008678598327758043 96543318450312387463112766976803855855515550740811012433175024835470152184506497 03858469585903155017592082105943221103529030282769822791427931098003279754286051 67273952134581614764788887742985857426310994145698683320568836256905342514883980 61919266452078496502566481081866785011409405962685159471016019695356881278605921 98311930359662773420761637005270605960904549558081877940350443701724725404996046 24860669762080766091397834452390286693135863208098322134761802112675169932302218 76563302172446109881295727602037727268745415928230692630156734388980665731105990 95152059516364642142841244964400257632087042283113541609579753766084793377201559 34862044057126102996470171408769397213305845945325606766613918988188499919182243 00721895809243571517475808093458320363476093851182053037518106129886891458495507 48057457907701739913532002681162649274694456719526518562114539690079315906982573 95188579151548153725085415058297157944654508333832462413982904911423296976009997 67355921326274696184593336850676230752253825999590755433081764975619674295879999 87054022207780370393752198480775531811441542082990950288209761769035150057364420 65130665339725182134413002171723033270469299539248831400193012243900859041458288 94633580760300276061627881984181909718811234280187478825475386951955562492808035 55584353342431591557579918648365030455868696814963017821396808597069303690704789 40581310305255304819956500097517482231380361293745575987641131742542471281209826 50781434942301780084705869279850466812063785929952483643868364641371154742367144 07855279832137983610856310973320009472676055929744423618276594342187090252289138 58481466331705883565425161832046352843601194292412400946900777689213467874896345 38784823909605428524814082751016870729682543568597512679217380891891997137349231 49719456692505182171911762503766964830362795115396692635817899893609137406732663 05746327670009127096861089977472975633036238036356561687634696036168637007503502 87335759421960118762039279556728441913468008990010362443313342376598911711153902 03860017523801025895409534450128633507951081898642632316928393550332380276336265 54680416354509158498345931723760076745339222167550733481317826346277345051413008 15249196879925051285275768361039594323756432195020383660344331836832045332956589 65603424085185577946570068592928984955534461925998422249496638367291750279959864 86451276034077915706474873641061795721087735269146050418469003292954603908529408 36640156082687778274431748681540844807567243228281407976343325089496555721107648 56735922195951983542863532053789465176801176476145904307611669181655274531762607 97488465451244525811018757765222249827314342381776874206356250030767750383292237 81110787786045200024057007364600281463220746636087103827759253863812330214511548 98973135879073889989551527483679528554063979518185375561730683368174848654163996 36822866352627737132983117379480210053832855796680799426132550147304181571237458 11025009092945478805123833670756315514245369758574430425970932505540656992756263 53574322186287559282059723208383808531011618825713740726934434742559093323706126 19600271253736879520386018790006089521740797718194538805328694723905247375245329 62250535388056248174791974174670604177525143475150764981822395310883039542382215 49351009970624402084900272950782638693852022231142741503929713071110792074068146 48517908159557252890478566387761646265366946268935926174736421253286602447694419 26145193100761099748619261263523596303292142019577046771197891931426547987773124 50935031089429802652246259408175853125 -------------------------------- Process exited after 133.8 seconds with return value 0
直接用fib1()计算第20万项只用168秒,分两段算总时间反而多用了。后来把strAdd()修改成正向写结果字符串,虽然可以少掉倒序的步骤,但多了强制转char的动作反而更耗时。
string strAdd(string a, string b) for (size_t i=n;i>0;i--){ k=(a[i-1]-'0')+(b[i-1]-'0')+j;
有了以上的经验,把第20万零1项和第20万零2项放入两个文件,读取后算出第30万项及后2项;以此类类推,一直到计算出第100万项的值。耗时如下:
估计不分段直接算第100万项,大约需要1小时左右。最后算得第100万的值是一个208988位的整数,约等于1.9533e+208987 (才200多K离字串最大长度4个G还远着呢)
这个数字大概有多大呢?
网上查了一下目前观测到的离地球最远的天体距离我们137亿光年,折合米数约为1.296e+26。而第100万项是1.9533e+208987,这个数加个单位米的话就是2.065e+208971光年;137亿光年才1.37e+10光年,不知多少倍了^-^
计算结果第10万项、第20万项、一直到第100万项的值都保存在文本文件中,数字实在太长只能打包上传,下载地址:
https://download.csdn.net/download/boysoft2002/15611989
最后一步放出计算的代码:(第20~90万项的稍微改动几个文件名和一个常数即可)
string strAdd(string a, string b) for (size_t i=n;i>0;i--){ k=(a[i-1]-'0')+(b[i-1]-'0')+j; reverse(c.begin(),c.end()); string Fibo(long n, string fn1, string fn2) if (in_file) getline(in_file,a); if (in_file) getline(in_file,b); for (auto i=3; i<=n; ++i){ ofstream out_file1('Fn1M1.txt'); ofstream out_file2('Fn1M2.txt'); out_file2 << strAdd(c,t); c=Fibo(i,'Fn900K1.txt','Fn900K2.txt'); s << c << endl << endl << '第' << 1000000 <<'项的长度:'<< c.size() << endl; ofstream out_file('Fn1M.txt');
这是比较基础的笨办法,这里的strAdd()函数有改进空间,一定有更省时的办法。
|