南京网络赛C

分段打表大法好!!!

打表40min,A题1s

https://nanti.jisuanke.com/t/41300

#include<bits/stdc++.h>
#define int long long
using namespace std;
#define mod 998244353
const int maxn=100000+2;
int P[maxn],phi[maxn],cnt=0;
bool f[maxn];
void init()
{
    phi[1]=1;
    for(int i=2;i<maxn;i++){
        if(!f[i]){
            P[cnt++]=i;
            phi[i]=i-1;
        }
        for(int j=0;j<cnt;j++){
            if(i*P[j]>maxn)break;
            f[i*P[j]]=1;
            if(i%P[j]==0){
                phi[i*P[j]]=phi[i]*P[j];
                break;
            }
            phi[i*P[j]]=phi[i]*(P[j]-1);
        }
    }
}
int qp(int x,int n)
{
    int ans=1;
    int a=x;
    while(n){
        if(n&1){
            ans=(ans*a)%mod;
        }
        a=(a*a)%mod;
        n>>=1;
    }
    return ans;
}
int ans=0;
void cal(int n)
{
    int i,j;
    int b;
    for(j=1;j<=n;j++)
    for(i=1;i<=n;i++){
         
        b=qp(2,phi[i]*phi[j]);
        //else b=B[b];
        ans+=(phi[i]*phi[j])%mod*b%mod;
        ans%=mod;
    }
    cout<<ans<<'\n';
}
void cal2(int x,int y)
{
    //cout<<x<<' '<<y<<endl;
    int b;
    for(int i=1;i<=y;i++){
        int n=i+x;
        for(int j=1;j<=n;j++){
            b=qp(2,phi[n]*phi[j]);
        //else b=B[b];
            if(j!=n){
                b=(b*2)%mod;
            }
        ans+=(phi[n]*phi[j])%mod*b%mod;
        ans%=mod;
        }
    }
    cout<<ans<<'\n';
}
int Ans[]={690451183,47460984,633925001,35991823,885850417,321412878,51925951,516343311,69712726,179154857,846331811,802212659,601597575,973005104,914465680,724888431,204899410,443541548,363982532,895885357,698105445,995133426,554505844,757923622,27142237,311663901,561330870,244295844,127294908,565590759,434700191,466173694,925769872,438865781,624478547,43019858,785681782,206205072,462621708,474365739,227642799,729010012,385959114,225373142,133617944,814577040,473616989,831196098,128472195,845179448,833796698,564184032,609170995,474681426,367790206,983156984,174096763,358543893,256614919,683130926,719062692,775709533,308070906,320557665,695727256,51934875,1376218,86003701,47046197,844401367,610778254,537246264,727872712,424354332,917558142,448361376,626470896,698481760,769702707,417544717,692106205,869405151,931148847,708645568,830864470,334137972,419714889,637941017,401978781,101318167,77437490,638737227,435285618,422201462,828320562,444419933,807107491,165223620,746671,204644184,422135776,215913304,669907671,440025183,730144576,539533495,909104468,385020378,111716328,664691086,900411580,341214144,339773065,55594511,58407470,118626551,22066491,880560922,263244816,844657931,654535790,419374461,790164975,479513994,810452467,343634705,992465494,588907908,342703549,368852194,800601710,853739294,414024259,93614861,314302656,969223204,136937099,899394768,774528903,193922955,155561939,659053245,400369188,73305503,919321783,296203240,204958393,991305377,878858587,108107992,470074163,140349089,424504922,389234648,268444537,603053334,489558388,107577822,795409833,594702778,39562525,190980483,271823017,551561870,242599851,221449193,125574955,908633076,385284791,448080560,765629121,250615021,672251318,669972654,192101339,695429399,293218771,279637943,709710366,566028275,903954553,348907481,801315715,269569568,590992358,163601459,299178837,325337684,924669223,393917155,777129213,186869289,585519031,792838667,105565868,276500365,867852891,939805477,764760266,800802475,359722407,119660536,317471694,796690932,490233744,47907814,284339520,176933311,953823896,30285430,873373206,531091500,845990446,397233524,145395615,96757793,216893765,952551743,43214092,868235319,101497365,543446413,513263752,508950273,583698084,734031814,248219448,269378469,218713899,795512685,883657356,54712308,86802424,846179615,803479406,969643097,357252334,912903692,191287215,115514098,194854557,159935680,69245471,430000558,175382875,7549024,890990033,132302465,991442435,313283480,311515886,466051556,758006617,258273306,488288352,215244953,54431138,731354741,254492161,41296073,723312780,945665025,332648815,105973903,460995756,457199267,246867149,987443381,978207927,275323138,5336620,278073131,418461438,852177165,941405014,228545174,530728581,486505138,360760661,18611360,22623396,463849167,627599733,618763178,723883659,51568398,984181017,439285749,661722750,827344241,389359779,968271986,278988721,330545054,514782156,97128705,657975863,164685020,779407022,467251218,742963120,400592192,227443129,137221040,988459183,698158849,735208174,171937424,498367004,904369284,334116574,261212903,122822016,769834019,920229151,170646604,726572096,87697423,870197256,587459495,366177423,688498531,216381835,753095357,791838508,57170907,943729724,913597294,682361603,806278854,562268388,340679671,43117710,267343306,765673742,302787461,601378028,182407060,609780358,439085783,990852881,432271376,404635572,54459666,886208939,753661596,705847140,934948427,379208633,584395184,477941573,381502337,139492447,946866611,861465199,719937964,409459400,924809070,488696734,315641486,140730315,759792969,766278179,565514037,731136137,246996294,135021940,71676865,101926605,175636269,603861635,229788184,401738032,531748042,401692943,43064403,76864083,371108861,350601008,413367652,788259416,612753343,723454856,33315042,675014560,785833743,433454711,853631769,219650691,232814129,831769668,102240684,265479086,531725206,834346546,408558525,671280470,808564446,897003325,394256857,35029870,454010790,77375596,614865600,320157989,355018595,516387501,445993572,649883032,579694615,660346570,847560650,841737619,720552954,825050417,825808155,254701801,559591210,524603558,678438484,36668797,229326232,183774140,549850355,88441358,764990807,262314227,697673297,268174672,312615397,580813884,907449701,163783059,362048976,747802488,493615193,219291798,372734842,113361814,257499638,720500815,577393611,914733204,49692722,83325793,390185186,562163076,117736439,77687245,885404356,944599594,851950141,536430938,49184320,356596815,976410425,647684570,808671109,826427062,899805007,408483392,947906138,788902030,867342843,524638455,980250636,812781182,450451579,992073370,46828351,893439225,759395299,477732975,776739494,918081193,253055725,469143531,322135926,314394858,602373553,279014045,119189292,128036360,936735518,790135165,557015121,667571867,866717755,911891864,178194253,791194790,361007045,775306299,616644017,908666450,97919891,595785780,30387920,249151354,412414898,698644138,939914632,407352132,475244826,24214516,171828901,760335965,41727431,573261264,758538490,672629765,634281907,847587955,337407931,996071633,378474804,590666966,396349139,20431710,690699299,856737224,185710546,466410765,304766206,289256229,321348895,828144087,7369264,347002432,984980118,25496005,146377644,900039391,435222549,17964023,757387534,611210267,668451768,285690057,494157380,271814358,852381131,746967305,199652131,795842265,517871869,22050090,296937053,634128095,85318312,835710698,110042378,825571778,17464007,542638631,48134636,320929428,798222444,385484524,408762165,893990889,133061324,703485402,933831614,177202008,514469924,789806452,658219481,591607578,191575812,13762386,827347078,651777743,615345370,115082613,760537071,350585144,899725266,842131443,164188398,916873036,912622814,200530336,172044629,592532443,816634233,836793873,385513697,862460263,947195324,387660194,843252630,117087852,996477894,264419745,590524578,538881437,477238339,544088075,395111545,788553407,345740882,121987755,258795850,137922648,527721080,368099534,264057668,217689514,176610354,322838188,688309497,34046212,599859209,901656863,643682346,810331987,112732947,5691064,976887382,353794136,139010670,516425738,614834096,517089163,188786290,541666496,48167005,6912036,94052707,859481688,927574064,240740219,410977430,947080118,183634252,713185752,579560880,985196677,227390329,916934069,897396844,484953657,427107133,51532058,317380842,789138989,364751567,876429956,329608089,694510868,454847460,485194872,713712321,933347499,99966435,494108991,387460610,416902484,522969106,985795248,365928678,125606552,819484988,111584456,626564502,677863518,85285728,451911765,352494634,508509816,321598168,362571873,14194981,473929671,715311508,17364575,646413497,288252284,940564176,677070088,308789118,667602833,149061937,803268083,589414915,530007534,203178227,722696331,124588216,492948338,61515284,266182978,96784877,193053405,35888845,453620506,248651730,834907590,566610213,461290763,851233811,613088474,702949383,746816791,456969574,971102191,628195241,465287708,644846193,276734107,322312462,500093782,457362356,689092228,697357288,989227311,710198065,355280204,189601925,295100906,748952629,331041749,661587555,516087217,425477875,28255974,32845589,518360311,895594400,239270735,561304778,774899257,987464423,609077668,559099497,696250431,725508891,502522671,590149584,241403795,358321195,614639375,919469592,567407393,441820222,865472500,535634456,167522128,894619779,29432020,497669474,852087340,488458307,975813118,108914134,819794789,439801323,285559461,610480569,90238755,467347863,954419655,869706709,824791177,336297669,209117870,714883846,919426831,729209446,590957781,130108168,689074981,481815183,469760139,355090462,453801168,233992857,55493000,139972939,739794112,863976824,393793287,647817151,127786127,689022443,874569993,99537213,175734830,397798079,637944155,856091063,782812874,214566878,153508475,866031902,786228572,230862517,503713303,511024336,142058195,457524147,890798824,885352158,916118792,71770714,445759002,730176138,469778485,636433153,388545751,629770353,185357830,235722002,949438676,779803426,872408265,353098342,258703674,277542026,195164994,386323936,947384909,604437695,210881353,191019848,292540820,441799248,593842266,177791721,53204307,289765896,420341385,257758509,430013995,830935197,855709083,775243798,366240501,82945777,376523294,869550626,973981242,926766658,842935678,852848414,400366318,907616854,868031724,779339093,117291611,447042722,686139524,430698563,790214614,920844604,451044909,575716553,214379563,904815749,59613068,818167267,70715692,72623388,83264049,291489949,248783035,921985790,171102086,913221984,671961610,213295118,392610450,730984576,880785946,973332055,433775919,274657507,578841817,135925396,800265412,875369074,876480963,719168633,523835658,368829903,832292215,388676406,80317197,773585682,599007815,692230860,897855595,247565530,2528956,402728329,372360017,912094337,444220643,635621753,697570331,281536576,801628054,925792931,708121729,641736902,729455615,739376635,71731928,697478946,714014536,101554994,64605777,245835419,427646434,18350294,277714421,543409647,267899205,549834808,960763931,900398356,527481864,256640467,120824098,324309896,159285781,110282782,627141353,300069979,749006267,995109026,780577531,759031920,67538015,339051462,489932209,192602467,476512249,530669683,963322805,71969155,261821384,125098581,364129429,807895383,914247218,593734057,553381147,300672201,745568044,152802147,238118075,819020540,637939085,206184070,921251886,439646066,181728350,580077615,276969589,752521863,710213458,636123112,818878522,852706853,492054181,23595820,467843683,405808399,663051823,581937401,464664077,367154019,289268061,285458315,692257335,78976129,985378815,692089370,531117138,905581558,294160273,472063562,50168543,655506456,656844459,578383513,141120786,372398918,686104631,5479602,913631233,806291425,173873040,676122475,409906079,685916728,317631767,355935293,252923712,76172151,292477717,30016163,862243539,419630324,682322244,671300118,681326976,383989941,602353735,858233936,331189354,513467443,688805913,873504166,128199704,584948702,345539736,166692685,165248285,941814616,464458183,220675411,611856034,249859173,915168311,259719526,950035479,626788908,829953535,123060451,135492534,237232802,570009115,195782885,627929830,948761890,696884523,142412746,869442392,323417776,162491991,132548467,950191501,844746653,895869119,509126528,709976811,118643750,311145266,348355427,138969969,618322081,569778877,454972757,236948852,311377885,434005768,282706128,246186597,902376506,829064886,149206355,576917432,886421081,752963229,467207102,725193763,5456040,153522371,54350514,345620078,53809244,606702361,166234167,976417315,798592571,707420567,32011942,870410434,113008542,749588226,132262866,511315397,889765470,690650984,639174225,282955719,278676773,79858611,132592518,802533050,90621889,205408607,802119486,1491293,462652144,16723841,646957814,217505908,821429499,138394287,291586306,551966619,219267945,135239946,400902283,565373556,530360040,684806958,372385582,13627167,145102413,555940295,945533141,485917326,683607551,893379960,288287392,387143886,336778337,301798157,124335591,118345651,336716003,780169753,798866654,58947472,576213738,174323670,238798246,718789959,483667467,502689245,807046965,535622051,506035422,749455416,379512975,417634024,352635471,238020422,699127061,810274963,257105632,475553748,540871911,847714398,627036351,654131693,336960264,204988958,427823322,167994247,52498189,678389078,65180947,634561203,638343769,378999879,267945509,553061065,608594602,533401945,892940483,24307642,133764604,116727170,271202253,257788690,148819153,89305807,272281441,577488585,713337952,331990021,852940254,445688880,808579912,237981414,381043980,53855820,35496108,290170316,850017432,715690682,60496349,505959882,355243170,459197450,976529970,512525808,57041604,85999381,200677716,352346225,443108852,563484360,717685137,690916577,343704756,451611712,361417166,700527041,968551882,467937264,525893351,667083810,857060946,960290865,343214562,668294800,548410790,318033830,678212484,507761379,167437352,938096835,814981542,166433803,748299089,873226977,593988964,485039100,845396278,963084539,130824367,150339439,245028883,962642556,958150714,878258720,534454183,520103265,295523760,820274607,444308042,593562257,20541284,760180207,823972812,348414310,894003182,46480938,692264354,335763783,47009857,137989513,266321407,948283512,154569332,205967007,271624024,949199159,461677620,822190759,122710317,580633104,93487051,915459383,89632686,266174218,154407884,967156598,857561110,324526370,6688303,271882366,255905194,139281963,515266280,579734861,267167808,377386990,783167294,465657611,511502875,72698277,240948055,184476352,578267313,268235478,926620821,711414338,29750974,443631926,393358815,691007595,148950052,344361863,571253806,81418906,952184168,823841985,518448915,504453291,229946776,615441789,667494548,184243583,778425933,392630929,369161301,147313853,500402979,335536240,497408959,901530857,707795844,406952808,55592493,221146221,843434859,716652116,234239306,796160704,31665728,616238953,546977411,785349906,948238315,859359879,629856950,6251931,967212602,124678694,924225000,271194086,759724240,540859005,838833705,182155350,460503687,463535598,796877335,274404235,32193915,253342245,670595023,200094859,109266057,512422065,332621621,756993593,352267162,134026664,782143801,115780931,491523544,303492558,688348364,884324979,88063243,126868343,19574964,822381025,106504061,781186742,191028975,862220479,638589303,191426031,972958723,512746088,530500904,803544819,432193550,102410457,402393586,938392675,541591557,310854298,104950380,342234130,230386888,733229235,90088735,104974623,884528672,525035997,318199732,603475300,179736847,251797608,664171096,845463625,442688067,386234494,260747023,737143700,627403630,945077264,114299846,319416893,371868460,204248952,79772665,120871011,400730512,191120264,32308200,599347739,127198055,473775303,783661916,125398210,174089808,672256424,791618628,475777160,286816495,57340463,600399338,850269426,100242025,30175192,777157688,768884095,685784131,89786258,598826821,351874036,824547969,501229596,720120054,590677642,351317194,622697930,541610309,84706740,706189219,779987139,265859877,414173350,577286423,491585180,614290536,585241192,386473184,307744191,365335508,567305393,112174712,664692517,133701436,428546176,947971484,150053151,384961139,16373215,120590815,675455116,737803470,776254809,138633056,618681996,628340445,36064097,303797238,645573643,791494198,171001584,573289405,579846540,372872901,738628829,274662547,505003349,135240239,718592999,888110783,863755528,560410845,909198876,634549821,313179048,25340937,326469136,281079397,449897895,427840800,497826631,588274587,606471514,219786416,270689744,467946943,672392783,31975978,507213317,451905743,958618049,758887612,909205556,432548134,379165164,756778969,458194512,46744155,499644145,270251728,565676182,797361550,400949507,488635361,303097046,940998464,752449253,800079278,264114430,401249925,686731787,373210544,606790879,517634883,383960012,226487633,798231246,984485138,365042849,872969285,23200038,348429107,548867714,855576059,659751898,277858053,454051739,83830642,726435250,15285687,551847212,358752496,173462589,462937187,650528062,561532527,420614149,212739149,676773924,842214685,29216533,343744807,626808635,950079265,245677727,750167705,926583390,155772141,76627547,813285907,144014238,547304188,223807390,390027774,99696176,133015393,103853469,25487279,268361493,158301372,113343461,420659106,224429840,366137059,361276196,177723682,549994401,997535474,93779507,862455334,827130829,90519179,244449996,35560724,13234576,181293682,108156216,341398336,860909100,795299140,385859921,572300026,194158580,309193676,786499502,613901253,382147816,800993408,768716757,836962130,699424010,311659067,213887342,100448107,538891172,491293751,254070596,246450226,921959244,815794759,518590828,739823120,361150619,648895192,801790489,708064990,288923701,777369254,260695196,898035641,218892527,409933291,818211356,794326279,731398296,560017253,448506072,796347476,345201872,933829717,298112659,64627079,886557589,969428119,386038349,398930759,947704637,627289520,507222843,244725519,231294107,674113331,667555481,38955830,2334877,403945743,276112583,989853583,704495749,7818845,497285746,261192171,510065135,99269649,971866060,206714114,148629997,924286926,19293064,600640814,565252745,317004938,867884542,549361946,330340214,375578463,690050927,481382616,509952393,795180570,171387393,736163311,149832180,73213347,362947439,955888441,959179283,621850804,807403367,482904978,855069845,41138121,855198855,384087647,655977893,155735944,363397459,687904081,220786653,300665279,624940942,93563017,482021615,916095029,176036323,952710152,128798508,85875999,278028032,343436348,355638283,185322791,897022511,274846673,252605249,702638205,178349409,712834713,854263182,629361034,31240466,373712762,521055062,380149060,840342466,150963871,341870446,453520087,452223752,376238744,63922782,929778084,649526786,751396060,528768000,916044171,888486121,588447435,700531133,150357435,40260399,859034462,665203792,85517873,218734125,436087601,861609915,143770449,355122982,508965675,69458137,614015341,739720159,417797661,696857457,286431347,688117601,23369312,782702903,848220108,230012238,477968354,912498237,220719563,251004767,380892333,136156842,170370110,365968305,264953004,430056019,243767907,54261663,249258708,226193906,124155455,11890312,323612167,42493761,550362519,142161600,504297440,465859505,819302036,889010273,159892125,377841834,559582334,324564964,981146019,974498629,512950015,593137408,895020546,210847880,499041082,359256323,933679471,391639676,800471950,479069210,804011110,855646987,880564801,839408043,40918204,808707250,173635066,100489253,89310883,97578622,455834679,309142560,840466347,128364260,132615777,898346751,884149247,878753218,513106286,983870774,274165051,692073395,799081805,201070652,954319767,876208949,988479269,799873633,961113154,971818697,203842854,444061192,924161860,207311085,958150100,584220402,818448589,239127227,205341239,790961425,333983441,674031682,910124200,596997276,872088331,905781202,167445326,50735919,247196977,285926986,137980717,857225643,254703021,244301118,629786130,566075061,633580537,282940881,16649055,32076696,86593579,68224611,933818442,383447599,135422570,619899859,417108400,12620928,220874437,644204163,650847084,110416106,611293117,989967484,892266985,102673571,791351706,296015378,74623996,871979638,839429442,807958987,404875533,908753166,896474133,518536033,885266002,171243205,574362758,163526216,874432585,269932579,438204721,540772582,631264820,875802343,616717275,177574675,723983539,872507666,127752596,563557268,478005916,239594622,499553636,819985275,167008126,389804312,62306238,804395325,620229679,497129104,943764261,416753126,880781966,469877729,883948371,244471747,301283521,82732585,735963507,729202623,587733055,347797528,664187376,109207733,806563798,246094330,77351910,984333736,914874005,830697081,942725420,622201451,698312837,242182461,321056357,35749778,298208534,284419605,632876702,874230165,340859211,633331073,97650185,53464411,293325897,105586558,970223525,105017300,310750070,990574749,945866269,666839520,70702742,701922771,711196588,47402149,64722705,330963376,695659161,165019646,542872475,245081650,272208995,611766588,924219703,395331307,396081096,241792210,63226911,709697496,266593919,843912397,218519830,40175059,452005917,335287824,461436135,6127899,594164169,737809526,745636735,542789796,956396207,376948363,600723496,247949032,189171997,475052993,157512596,534834677,677279092,533029672,962159980,681877639,423069713,343432052,247323388,96102059,167162936,209135867,631316693,170322693,435429921,504635636,965565069,624410129,157814364,759493909,736044449,852168491,191632505,733699193,92953198,680379196,338535120,280911397,945154571,234833290,685895791,264617274,534899613,782670538,996036142,334275060,483734499,102549316,97402901,348063634,773906930,445303417,757761350,510452842,69697227,356096986,68046372,741898855,812693212,560132739,553863447,682159206,50542161,812425488,528265649,278280208,874311786,5468213,242590320,287173623,363748908,612122987,779789039,359452442,284531738,48626308,510446559,357440804,402690157,939970864,217595414,209088064,830334698,103381395,837733205,259272044,333336623,137455079,201116461,706882345,220707297,942387734,782727040,468551173,630923284,186600348,15099996,563900945,826997316,259806669,514639746,3081483,77892510,483960748,404687790,278946202,639547942,76520428,334280988,644763975,722192430,409860878,670154498,418370579,671216742,791036800,298483966,848044863,971194029,532513918,218624178,483044617,145776555,895887041,245066107,862074056,305446345,993652060,535955554,767665956,627361781,278092541,931795048,701575821,260059591,17223858,104585448,693361097,74442950,362161697,384352192,239466697,587170837,568566070,439040331,329605435,30825397,686063446,741352015,966302990,40725296,837168036,682595947,626359619,211748550,915257385,848046294,299203428,95305052,52042874,662415193,220536499,956253490,495401084,5333956,508465842,412506510,268489792,166786298,440991360,676561594,203608292,420934286,295792889,637750522,168407208,678006807,678007535,852934781,200466497,7906278,669900044,813568797,125521215,257471728,564377736,706291714,944854970,61352271,646635003,819329400,79072005,109304422,603645356,989241616,197217914,5939026,212300967,97863224,355416668,214466722,35082602,543101315,947971806,556700278,67607424,516915769,661802806,568854798,294516154,1534607,457953154,692475641,295589231,528506379,742527873,696471703,317168638,856711562,421772317,343559123,730355232,489033952,812792883,455066349,60361284,172762541,459264663,471144732,557071689,542205067,226764397,396302560,461848337,478598048,496023516,519076657,701196829,398546018,628031779,280868915,126598828,853835982,801102939,410184761,244815979,799225324,176412055,244368133,726490136,95144481,475698514,754865440,556574821,79751721,127630931,973326403,542031632,534671263,543504620,884625384,600965233,682915266,391508706,204268605,807136009,667674900,376303448,577025492,418168763,204301922,965685896,257590280,623937165,690366278,635580427,21535192,178680333,837607874,813831519,857291170,673653597,874491881,75815683,717030051,80201924,18927892,742034272,727797184,42795212,945396655,459513643,566022186,335740972,530738217,383414689,643035275,803783251,500367340,337228896,648555575,97024211,128152435,907082066,605496479,645869891,55005295,401592594,437100864,269799376,909651316,172382672,759933693,903815796,235387584,816396264,303389324,124203398,756316375,392851326,233442239,58113817,444774816,189593693,864910484,835424898,40997541,658745277,288391594,170972286,586227903,737347486,880973903,525425810,922987785,977197178,24550173,599911546,31716514,943719445,529458645,870242829,433612358,404520364,832912151,255682295,654368359,243645442,483994809,372318143,57102953,519215862,142121690,868429332,885101486,984209659,936904271,454596233,223539752,97808427,354881898,534412558,906798264,977539692,234389956,226780703,231000428,109400114,944023040,222713794,62780396,372023121,952984204,759114845,7897920,875477146,455228401,989982392,759930930,743038864,495808424,76857092,263098374,815634110,810674541,567429904,356312749,916754758,262614794,583275186,218301519,171650707,601647575,265846704,708641881,679215308,254454349,774360448,27286638,19597180,496562714,808561774,304162262,149210363,382761839,360763004,601831552,419904245,146083143,716065843,735477511,128386708,224083506,307905608,101548969,609984001,688837086,772241222,291223908,372546646,943136168,737601242,310164544,572461583,341136413,981774494,681640519,823525714,124211034,52089665,762668498,557347535,842008226,860808465,592395848,766381853,822891348,202202652,62506574,625304476,263583855,118592771,933055556,261830496,19992827,978680205,82109347,156453119,168072245,186131469,531580699,443474388,305749759,671033719,563513123,193475654,490610179,723077991,959030649,975553753,985828624,477150944,572870653,340161221,49429391,787910503,88598189,308370468,788902493,697234489,302704677,771827687,198252049,853740342,760110941,234762513,100345914,805972938,993865645,36277669,945411602,406737895,357190604,647504532,588818597,171217048,795086777,109396359,53806376,828615378,41229180,844787522,407357734,409340637,687911851,475234036,174900650,439313490,369158496,123286360,516659131,540658676,102814823,244204780,190965463,660315031,914388473,472749686,681188726,348205245,645825579,345947676,160913921,679573778,954070762,909361212,701782112,892845928,121014258,437772874,839801069,988026782,598128888,595309166,843256257,928055055,506034601,104329669,945295494,956444140,615401640,449893031,370584188,209713349,153895036,163502442,18204300,327643878,129197491,840370330,624758836,34988135,908724737,861205314,386108169,389282612,933420989,724975849,61293131,660247031,608605261,706607571,246563180,376803887,108156862,242509448,553048396,411080886,745624766,592017902,612013497,959450060,443473819,465923909,276930966,914615612,762321474,48234163,186323078,30667817,107430733,352210687,983280322,351162190,485946731,752104881,832868512,778080623,94749124,633559116,581250936,627627161,496408001,487795753,736301394,83453112,18261856,388960375,622950443,884217183,620417767,813111344,885981940,731885406,258346108,479175682,848556362,391799930,285359991,378327484,496707030,879188937,466371675,906239154,825984550,754729272,60853473,666881974,747529566,417066124,459197196,741759433,33764021,834808688,676544245,707686370,823396642,213330871,886891567,830510422,828249818,903309764,827040538,74744293,924710851,419976712,19755570,89983565,886676512,919160106,265896121,300823029,729425064,98071110,819069628,73218544,375066093,856276707,962752225,645168871,45962082,824442348,742834127,944397490,30375691,76145368,342710964,784669920,330794452,985874699,764044085,968623838,602539200,41655984,873729664,335971711,875943109,760253058,766136279,845883832,972627087,32996012,96502876,513894470,521902484,432067821,579280783,320663852,176574195,854102613,279475197,841303060,797855398,250242086,597064955,348130024,798986390,150673455,334009020,579959254,437314941,302462230,777520373,404523488,70238072,524722277,353138007,419153924,984163155,877718695,757185772,331167990,910387442,298009099,975009856,769535480,497861888,219907377,542544030,741735902,175040462,378408624,613302892,149687388,501039025,857036261,293366229,553849325,779924507,534409721,808162678,52147061,918886686,444295450,327062818,983493730,737117044,108735278,274593510,54241207,510160286,864219102,818937839,814546097,86091132,435136495,74142402,571724040,2252177,846710586,151011320,453502828,351301117,570839038,636703138,598226224,507041557,362520131,732619261,407716164,79469776,150525358,555764386,57711927,153075130,397442355,605691199,900494322,649127624,843308936,983548459,526015015,516167364,519343997,400158269,416141233,17120805,622491057,479167071,7043100,244991455,982144874,846380962,784532473,496926572,358559270,184759489,208033827,31742228,570744848,283432430,309067879,86866548,672701818,924519095,955099880,782692129,806005480,156474286,319298387,157301330,615161958,17331783,364696924,560526717,761806349,562013010,316615221,120618703,703065345,775974339,909223006,504733460,748149485,532134329,99578736,190131699,282299689,887622047,903929849,334886696,394550514,445413160,107739140,879705848,92244660,442116243,501305623,308990647,72322949,904853508,889595726,677611781,993126548,397752489,11499672,990254355,814583131,349885184,118900749,816284125,691228459,754854372,238070980,78055202,716839579,168086386,346812600,954895141,667158837,568619542,924488699,587372307,358988247,570387579,908339135,485882964,760319209,7440040,566015644,182342418,47223781,299343121,214570696,564907755,248934513,298412574,847488219,666010408,742123098,370689773,183811327,617553309,227729912,297218098,701974006,177671696,269730329,524760437,525168958,990851021,981162725,534146458,80408510,890043654,677732969,329025421,66064711,907245077,730061409,454176930,73107736,292357985,679949897,299023511,887664401,666748248,64932023,835114488,111803411,161801257,801608897,269679165,334000069,975934781,174406293,653568412,275248570,25412980,952429480,792660099,392758237,158710660,641600050,221339821,627683769,874833951,317413321,565764733,990880240,35561788,698335877,971429060,46835843,860347352,997496851,399516448,325347935,912628146,847619147,21214346,105968324,602183166,350737360,514506734,105098591,11189975,772725741,542254609,99512461,595676299,744738258,677530509,94393907,789379235,805291278,711552506,36229971,714717480,166763273,842929645,917030708,391555270,765693095,75716385,821433009,295417810,281160880,725687126,371026156,329793083,83218575,146952905,805983846,214308071,458437644,162704320,300991603,15221831,534380311,467187070,50720093,522177979,690930837,960845806,717572460,678791504,946418190,559732922,903113303,598236819,782346628,94853566,19997158,521970766,422824411,905364850,662016910,427255394,795998655,389499600,77023155,277587394,332523242,747134389,197399054,865610655,778830283,670848541,613615955,563480865,703729749,26300420,366038800,997121808,936601449,422620140,861085419,253430113,949862788,325173643,115868671,928129941,888427925,142987748,484574579,329246138,812268169,703883605,459557670,802738607,754008462,482210349,974110729,980661263,342019716,946774312,767027618,688020656,759415663,609973526,135748868,124253319,17295502,234671523,1712109,925308975,555326453,187601511,589699317,771617744,752281017,684821751,899829552,557257103,357642966,184360358,653861981,338152212,16100590,296092560,537091903,966305648,577532988,993701432,671799004,705808961,321393398,959932433,445189174,862300621,535078141,107685762,654980340,159418196,786126588,568848903,427941188,233733701,763591876,623782025,701091988,894006470,539640481,844755778,209905699,933570348,573008020,271772531,719733133,596124751,552708948,571632471,765159876,805848666,213535936,101909910,812573989,404381238,571054560,278072990,875397125,510226433,712489093,230049416,303118015,669266761,403409770,273622559,618640127,124137391,234893559,625305176,30278574,395666552,492469219,461023152,513651464,594101482,988043222,314140497,288477328,430719573,754500370,83762863,855491188,3961353,488701990,624239615,303476170,394355394,979803749,503044404,569192108,619894686,266015618,551813916,959207862,975748192,490061829,153708672,137471405,140529335,577252127,610560169,9854392,905396685,219486970,456377770,166391748,410768709,934768231,534168541,852514601,431068768,941669513,8159936,464562163,725801762,599101372,219729038,188413421,647233922,941936278,301892794,232581896,823048002,672489335,933591019,27541604,635689342,154514312,722584394,635076253,45183145,243624194,260653594,599769041,989339974,908844144,500921931,636034229,443770339,419560147,665597411,608500894,859610661,772480102,371064291,391804662,355591835,120692639,438301139,298390102,755714647,963614041,457561952,784967582,672282048,915630238,470947369,805883188,547948582,170370725,132757209,912389110,866035798,54353846,129953864,659833741,566308122,98435501,548003810,45825126,907124368,671007993,449623045,79843072,242386683,541652601,334673963,355212082,310266384,337371344,867055548,158771100,164161174,642048208,42656383,479034551,93629896,896237,766107189,577869789,692791043,134335574,661987505,510667229,49859995,727502607,882229707,755083795,777589543,428725295,901550363,445504599,845304957,617808982,888886430,146377725,292982252,110703633,656679421,466451461,890186742,124017886,780401576,166333850,997003380,21778921,780071589,737470514,6460948,982751714,748621698,470523624,262903322,726851058,7840716,24446315,7507777,85248495,155126384,941175568,621059635,472859249,959386595,319385587,523625872,222488183,796784649,71005866,576079234,454165099,519382956,35141563,890927661,948379387,31975312,640203713,23561548,760608035,445321806,716362144,357192629,889470751,821505554,899861055,841509002,254854901,16751761,922644028,341180637,105706941,510821163,367443935,371629768,857948973,604038532,460373411,757334133,257541635,828716052,223837389,955456883,957638448,917950951,455001996,82392955,598617948,373894028,133474971,205743127,608747614,287647736,202361188,687087010,140815754,923496506,752327723,960203628,856894777,244184900,736729089,820602216,324906380,595215623,517413483,11824133,580503777,853318255,41344569,394012810,741585014,845315241,454725833,281849847,466257455,284166541,933367062,362080799,220384187,282160341,345418767,710847146,761017453,680346866,909978177,605592002,407729753,735276587,180281587,618791803,467289224,604929729,469991666,494206797,423110251,830505955,42621816,12432461,926208591,31381881,410106013,609988293,654488834,361453078,157664690,349349461,71071596,210269609,476542619,627924115,155782289,500218175,645628738,423352888,241938806,875287468,625537656,840123852,607983277,844619492,592692740,560260505,9889555,484104643,941649978,323939989,309476920,138483492,933698314,790257247,722803168,983189512,942684385,188826128,208462545,969270714,758604565,326286165,843195383,584801002,7443855,968899280,357286510,621145601,457330813,408171319,442298331,291925502,855891428,977966831,900646433,644202352,870832546,730217040,491761318,545113918,143119449,543939745,904483127,276272995,338272979,626662237,736284140,453486741,954287275,219670395,787159264,105403290,403247943,163861557,57084719,986273163,914836290,97208515,506212707,972952890,886390629,232723803,395828123,633809825,885423389,343024478,145473677,847656803,663529523,908684851,322739218,833628474,829644069,558667459,941659572,488513172,374923043,624360495,621065681,80607772,292832038,396214958,271242917,80816389,232841678,174526701,673203477,917787379,535868952,394570934,179514293,651490354,822154909,836025273,100221571,277739634,635506196,54650107,213400501,477264341,586761061,178202147,124548604,158848159,243088799,363471925,738682447,551811832,200802438,232923930,431207534,239557795,342645528,936479469,266406422,609734351,433362040,554474067,677999090,790234883,342978593,134049286,498888484,466908548,685626434,521498749,98038106,928341326,632254552,64608408,533657290,474355385,551915526,501508596,12334207,444287495,592402385,170219922,478071591,568807619,898621138,871635133,911033505,583532105,332390392,161513296,730379786,190338603,280254493,229302667,350504043,124619149,875868274,2963954,904946775,24926548,765510835,949191524,97512833,161334459,336813245,100939321,291546961,146263318,218306780,364413904,21869465,418946804,547335380,296274887,156860569,451789744,644819393,478779036,314972433,799385769,558239060,349449361,45711388,416982404,557497743,494115779,554234552,300198400,658921111,283189288,524152942,549369332,294800939,801235416,293608073,112540976,953204955,827170274,841363308,778419175,935867984,457494621,319534099,733261523,494713739,368171854,980471002,195432301,267435778,513904154,96918992,919841752,98750430,985260590,467785316,889238471,685014017,146500777,339265557,954078228,888046053,30918134,903611776,301056664,976835843,517270206,872381593,665482000,936170399,662747140,160948700,660981169,544028083,125221967,769762372,418890365,149666080,673001611,261571588,108690916,530840187,978890224,153739028,545164098,623528279,524391759,144700997,896473091,807527588,297390726,325939100,644099321,886810489,156072556,320427071,786399841,819008581,84511445,833290058,315401732,757433222,439483621,844400249,567266900,271590832,594874407,827561914,997855757,562085072,23957331,7505637,675753897,886298620,102781696,319543771,122913101,425344116,767728098,922487022,749277564,200665651,362347590,494857005,719095285,274630584,22763844,70652586,136757959,633500375,848432411,30535579,84099349,147824885,706306854,798189370,706146333,671078402,557919310,873718614,904860715,658105042,465562981,687285569,467515352,793722382,575200117,317025618,453307687,212944187,398505854,366375111,180346572,861056548,585809831,12722324,147760310,601261390,756661786,981656519,211248846,955680590,796130926,479289384,598135549,366647027,169950658,287089803,78328569,939029238,370333288,124714588,550579896,587903731,692436067,741953318,355591511,319927173,937416727,688244557,311778557,172115221,164827565,181341429,726637491,147738700,545720213,700462548,836080674,740941188,435991811,658433072,620865459,250976398,166595305,373130378,910771013,595230755,806492567,255217079,748243071,956475449,768292326,52970731,688203912,925553581,765089185,134761716,788916507,566347508,416227653,771167609,29307850,831109159,826754112,691939204,534747179,205127654,610198623,849775016,788665994,26301553,770531045,719398175,435321394,463348416,327725035,535908397,986498956,430456344,226198265,101795077,191951447,784412536,645517707,645679668,254099326,807086162,910438414,946909615,945373972,430617869,366424600,594196876,338466288,678280132,702511679,754482253,254803469,151450143,819098066,417872860,639026768,97068365,753151557,207217068,960746214,651635516,13762917,392305217,296269743,88597968,313029197,811057790,41506462,586867286,775267573,297417641,883027341,404787617,215264054,266361167,293519937,687122709,988706812,997901355,676625675,667133047,160756227,785390665,668065251,254823833,495714302,701940505,361531248,363720297,84568336,430806005,965476619,260782570,18700722,691774877,986093880,943776822,905119734,961495628,337999250,48713732,573690529,562526901,958017668,614004561,687383688,718144397,668730855,266742402,184775529,762464757,513195239,604437880,476803336,475911952,384228083,873210929,165835732,940018840,415511120,764466502,666468519,127230723,696652433,351321058,745742200,982889646,634571489,756688032,292470652,27980125,813822499,812525737,79979150,939021113,452316490,204855543,973120311,390274303,549912030,844215903,542121084,860912707,407371639,293340373,876807517,354663557,637446281,29437291,897012686,513731127,104169826,986539409,348214141,878790785,78062785,229322233,43031854,219266020,642285574,871070749,299548794,971482471,579068963,674976490,171447915,635678317,336832116,956310482,882821073,34299000,774571747,304180747,747985067,614467578,237850579,816365775,356229145,860293272,494767118,161771639,377675857,174338255,641304325,604697817,208160221,428750484,403627959,366001646,421797764,586843854,707326119,414125598,600600649,380797355,404096793,458930170,645392451,211164154,388364584,844358325,446076694,702846181,295930943,458540755,555327809,370432348,767381361,424508998,439537623,865070054,9815825,42540911,218196610,349518582,821853386,813990904,332679602,670966907,636791723,987818622,349241289,209919968,281565789,514587947,212812529,97384032,151151292,701176647,646317467,705287562,272623045,592025183,702420846,148105554,206069143,908038243,293366456,845486845,651176260,677314587,752059487,416525449,866172214,545690803,554493977,926832882,262628680,354825705,882041199,563011900,931154740,800712148,985164675,829311524,839611388,715559935,862045023,626138996,865347708,288346032,430041568,761185186,115769279,642659537,832098240,955653232,765145222,846860124,599818528,293245819,296693641,504913862,70422164,577951451,522456087,211913062,353389942,322862554,103080491,567991276,911257612,34029717,17539042,228160265,337812799,884249049,661402735,534603984,496277425,496884369,908269739,155249067,672629127,635793769,932686558,414644663,809866386,417369936,553388441,719770872,382834183,703943351,560127412,552615803,68648913,843418043,899915016,834668507,593465465,156983085,715122793,847195312,552256015,251312649,830706929,846886682,130236779,648082444,194143371,897305054,282561996,171378510,284105445,880716390,695618586,194403491,528989932,80156837,272562331,211576651,109121775,894771398,195457349,755709305,994915853,66414169,365929731,974996772,711009953,425647356,93068756,634700359,253751344,230995269,88065267,57495640,471980459,343859087,904396129,849877166,404901671,933587333,255156728,711936301,98523606,334606967,672963970,859281616,659638575,713457708,721778493,646939493,677602258,185778226,993887302,644295524,69435763,978001694,761984902,529718342,568261786,234870454,191195207,465491309,982825929,162615646,790231819,312166213,822674262,466380436,101583177,607101155,496601721,757366797,203362293,127670726,115468444,571272334,609628668,540141209,129626159,186024300,149627930,904919262,275093921,803016203,899456349,823323391,94435508,985713348,498536125,938535053,32330995,420133922,790370456,981317193,7656819,918899453,86671235,981494371,850483314,477581232,622236129,937920203,475905386,402908811,509163468,702124189,211733453,315032667,440768816,506381014,461532091,180635158,790265632,342417590,195335213,444062665,668823335,51134278,769816644,289170314,210618642,400979281,517246314,829991670,959898368,918837544,913876045,584225416,937597559,445601453,799458760,500591185,880064158,900199503,188372945,828100206,140348673,783377252,350269059,146876464,997245290,241285938,556011675,778879007,470065193,119122463,145363047,380658987,936608756,273068959,966383882,192194706,676039145,198836539,778051295,178836509,448116424,730180567,100467059,257572586,619488064,659377031,882526380,486510967,563824571,659119901,393266961,282750173,409314289,711320357,98851576,551071424,688673597,22258231,969095960,350585857,106418259,411612396,456773454,312531918,635845833,532780014,413953221,289767140,219211927,558261813,925330524,717405174,390897048,684433282,327923687,144644187,846027775,465005463,149321020,250092837,841941105,118781681,754219766,11800898,373137342,869358858,233044430,537351748,679023934,272931062,330740725,764860783,389715566,96292763,746417236,129726634,345160279,266962273,346633189,626195413,121509984,536467955,383775275,969578398,642383719,711192878,29094432,854948994,364309227,700540980,553233367,505273471,82343677,617354403,334774196,8425504,324637994,595375985,952186083,69159404,411743311,344926458,735835520,299459389,21528714,476686109,931175642,27757350,659207136,439982949,164011600,674718626,482595319,90164929,160603177,10343794,771650162,329209640,779794398,506239283,322688065,477719373,744011464,330619665,379433598,257368299,340217859,739214874,152916487,499698009,501021756,123297366,231809299,359381322,576234691,511294538,281842778,242840702,588137121,698537640,436451362,32489418,17838937,445245844,453531685,239776800,633472246,846325187,724276292,307510368,330472193,39410061,667194453,977215760,313707986,825047993,193606355,800681994,745460740,761317612,372031110,868659202,767260748,906600941,569949974,945588866,667550687,388907603,155633754,502333431,310049151,571914916,950618335,542102478,266974163,370813143,315102728,817836717,849671131,789600531,23533516,592079996,891010260,550636381,58192052,766420005,811508335,966800769,457701966,103442195,474302389,233175122,651732256,805307276,826186381,944668867,745789803,339154261,396534243,199683034,331998861,740876621,997247511,130640287,506569244,124802747,540884641,601591681,32852132,665394879,674388711,679359138,762315815,969579381,396750024,583691192,182884308,941096968,136591100,240475156,790076525,263832823,77586445,470671790,548219059,116090475,528633524,144245307,556140822,7577510,316564669,645380960,213458508,706501856,673240458,153898607,671944142,995995243,385182683,255852550,382163817,845987898,785397994,323973335,91074955,581699484,236782434,336469217,916272537,857543788,135519256,360889494,7138858,685285279,754982532,422037634,794012292,939894497,188371935,651670903,208536564,702564117,554059293,698332816,514850869,237672640,538038497,195997998,114052239,822017147,63196214,861179138,772316200,526638029,278795709,153081692,525475418,877508435,771145711,309255234,218408476,461517239,790709218,412674349,64997644,446966383,424772852,139810276,635732820,67391074,554914062,324977653,659588203,266305719,389859023,928936815,207755566,209398454,619412650,235147850,805809375,869535467,149053385,481179414,655818054,175784670,254302793,252000689,28056266,268222937,844645097,512515577,564798605,956191461,668607578,233771725,566643442,697649280,463505894,711318262,791536799,935901615,382772365,151839208,215444946,97466918,338542539,489300215,774060032,258883741,95856504,487388310,641360918,652254844,918628897,277230672,281533542,603768685,275829472,438354278,556332818,482511145,801134929,191299292,651805752,145228305,177272051,707340750,212887510,319143968,860512953,554134178,485132421,995734151,380811988,581901570,498705652,622433869,237454161,855483012,175671850,142968468,797823693,371244952,905559312,132537330,797820382,368320743,170648481,431085651,894650779,936786926,723675651,275618187,75566453,544845505,518484838,699968473,616107229,876649532,426278171,927102098,179029965,812490576,333588830,121675327,391748133,870090599,354460895,222886700,744051420,30140412,404721545,648055112,110525780,420705315,84326212,774796942,913463823,995753029,119618250,892661803,677805988,756887157,232194959,914075938,211531844,923948171,882406094,700754141,818311994,377678962,439617408,223698666,630053870,346069387,279282323,337933125,906937385,636280167,907009055,528615171,637762781,230880080,127627950,318431741,270066117,532989692,969346237,800085461,288167492,246615446,505709523,275478632,286887707,565060462,176506353,814477989,191502371,204403386,988201896,954366795,354588983,953613586,712140726,556435954,94141144,534186929,32788250,659145162,845277268,225086906,296012636,211521974,302406834,347084103,136911027,421533775,102872415,404059541,451989116,314570081,978300601,386517389,773908054,470703941,498594034,906271399,831385374,743126423,929250668,955928122,799303065,146050710,195971336,786260522,465493149,832528277,825793526,622802461,54572665,99927533,772555328,205437948,698163345,734654631,551099517,733647080,336265122,671272942,123969973,141225502,157141904,348649716,64566305,961425873,414171248,938719590,645754347,498163039,154539009,492387738,714674244,741597037,584242820,934196865,929229558,489632985,315262260,245035461,754376407,268140488,543648394,169478841,528296066,718453360,739112199,367922820,726569275,580159180,147452109,869862549,201817141,554732327,175477364,891664046,672662105,927906272,683813892,419604313,948612307,899965830,721074208,725422807,263074111,768694262,727890766,244555190,90042142,281373966,162422794,995796166,910094255,697984908,875851990,31479146,536816795,140498716,758076499,720405257,909562924,470112520,667006071,121334738,923221576,41950519,847322705,869938803,139345719,853184033,700477141,304261424,358317065,987379636,549323563,666375345,233542469,99629459,345553230,48209695,54967279,88853341,546749911,726839328,179726266,253763252,163026422,746327363,972994864,498730815,787933093,433196589,891229460,928220447,171370875,79547497,880796702,745379648,620112229,279231145,814342788,533925944,68479713,989854181,703714556,544206379,479597952,371864753,178029068,720665325,542824532,321234690,554435773,553223903,618042464,883147506,301017766,525634944,419297172,434542241,636589600,471934411,686904113,75392405,913877135,635268350,81410158,144349850,70172591,68897816,134204898,168555314,896639475,718239612,468494914,663014750,169860427,946607604,843661919,176014407,119354381,804126069,871253919,853683928,742176795,897343745,202131889,238747612,610879386,650177756,786528692,630592091,618505846,556805461,130564013,193489061,781408960,333171232,604115795,248469787,501871213,618485770,281558534,77659818,66510829,376306991,66582826,545721772,883465411,548999621,591770293,363290651,103272567,539844729,595952670,125187672,260092894,374092826,841455000,977280662,123618847,974972553,695369107,542590736,921411283,479371896,532942912,699181664,775475428,722648954,372286632,522836178,398373523,768205352,96933760,140377452,245630591,17781024,948510401,657123304,627608205,697324092,576687492,708885391,270130220,7368502,344359959,804550284,7560954,61197482,861988033,862311202,821067531,923700219,514719688,269432896,175540686,251084704,58280351,987360601,874244968,57224342,658892381,260524810,647911847,242833677,978326418,803371234,843835085,966515503,505378779,765383448,576002230,480156482,214745596,535174436,585591841,201964892,159786598,830502091,36433694,828939542,94616060,736849444,55381621,697962605,219288425,458097091,683582209,177178415,376568331,271451502,466765909,332335926,346750273,122938164,667504483,93095844,584630239,63691915,936737719,784678542,284758917,536467907,133657712,53516304,165162077,819769336,609727957,690609907,487380072,912896152,942708489,349528033,517783605,524481768,377752894,368179124,872551706,628949584,601021620,301685857,259087584,213423397,839092457,354750257,488355676,87580764,353622214,938936555,342663214,764914406,379392514,912144435,967473308,724775642,561417455,802001465,138565309,123048847,215297563,363292272,562695272,522533456,807587479,198369123,951483459,522980870,349757974,132923872,781657490,809610450,24129793,638667392,290934394,324993291,550921469,844394445,851845350,845196721,693841372,220631389,298518911,517707142,56122919,875111155,635746268,724989588,579130750,544693361,21733114,679526014,319472714,131637161,452561092,359758449,828811865,989992456,318784336,678675853,971429635,337774325,300999389,632327276,426115847,860728989,838746719,376181963,461424767,625844354,453594706,810333208,303573781,582692344,88503751,726161396,64595167,312005525,994801588,725383432,716703630,431976510,776975777,553481686,51570174,618793442,631755654,966059525,804563593,355006940,127600022,918822460,108011955,305791313,146643136,353821288,415092550,139916493,33926806,30186643,241193010,693111307,806495115,731382388,903085970,539320162,143851370,97594202,398799928,256047596,551363942,378071380,499641056,513300207,575715491,535970821,96727462,785002243,617640345,403192224,576309926,445687428,192380863,335544122,193254834,308833677,466448904,956584,606238573,236588209,513150554,655587857,785186823,176070552,673313200,474889702,711819656,974995640,205379879,307520795,243493470,399370420,451488095,471958253,432907674,126333912,162349890,13453721,342486737,788120671,570930542,448377219,925678221,135362525,303820844,180648114,734619596,284862094,248534406,580691254,155168566,317412949,608156231,891119312,971507933,492834313,206788363,373021397,168666442,397085412,247453870,697442960,814758713,840995287,522046566,875710463,587936094,409809732,620179826,360589457,158213841,522511739,103544277,140755599,788617850,453347245,535774034,162587382,675383143,145699541,994247550,911864887,217546984,886739079,861997600,23856427,643357209,764179818,199400956,752175068,455742479,713189540,75737531,962552239,928668339,255712275,432016973,762893965,540492939,267624425,737063901,278552166,933859403,75555701,838500325,385072884,144709722,417409650,97132810,906246245,154132196,531455791,31249961,684315148,158906918,561059435,94577019,696024051,217301833,202055374,265087110,818204533,145167038,16982687,742542389,141864020,22709132,47449319,84365506,850642812,686647126,64933455,486892995,416914767,958727279,226974762,513302592,472556223,33906066,617462334,363066528,956383412,939971367,650038251,956896366,817884725,467513205,221277560,591715679,124103455,933728695,789996599,825180291,978666137,15244365,578784747,353597301,195365538,787132622,326061189,77961632,869852253,959265371,537753507,202282761,957629319,352712585,777118710,299637129,728275914,979354956,438804485,885414523,361573192,187234671,58983748,841271317,918621843,335742669,870238377,222601302,80860261,541381977,806558328,863745822,473566692,985447765,142645292,91290382,8208754,48651398,39832513,479017873,792429754,337483554,418354190,268025334,863933756,587741480,114637513,720195686,573710062,678033029,878850137,568315467,628180289,373501689,920591669,806471752,715960235,962729490,401777335,156118776,879452054,882637362,620370204,346717386,588666838,710729743,38798745,270704800,355420293,555927455,657352114,895505774,119033053,404915679,332795584,394950191,101553056,929943087,870403559,13675328,834585052,861289054,910359181,365764613,677068976,788794865,8739145,458514208,135566804,655426337,272778208,638238902,71680790,452803350,957545620,91583942,56785241,890311529,722874266,67826986,268684892,516255401,427625184,244084099,749687820,634320087,921358786,747569047,399725349,34457204,487222215,984303959,987837786,349981845,624596030,840244762,809227982,349120974,250411822,434905744,943964794,660097466,134553889,607300353,590367220,330627695,638145698,363255259,289845986,488737006,237670410,955626986,213442038,869155045,637622407,111276265,802124816,694151516,495560300,394174606,973675510,558710735,107083955,917012183,568967523,793097631,264206989,507358781,335469205,108963777,695473773,561356726,690017925,32191104,297846669,623613015,929363082,724730997,103273167,981828058,760745543,768418351,110006995,194207985,915406572,964632286,448526751,844597714,646983258,989357488,419959152,973842781,86632581,957791929,573218249,104774257,47489295,633709315,382392507,6758900,252498636,15380725,885249333,744567761,222847789,255902961,966140637,682269960,116109319,664572942,910683388,723701730,882488445,626986682,636506371,798795793,481317340,297374104,726763982,234738642,635659837,949167903,678216943,997620710,381989418,326133013,220542798,937967695,140337971,179232807,80731653,397900423,204818921,757767918,789839032,111823314,736532340,617966295,849973916,315271259,383664914,524302962,758309847,51440563,780920395,400310955,440974629,80304109,568305054,817449526,531979722,655517131,154744743,388453185,775343058,447005627,434501553,501999985,954392946,431687056,139765044,955233621,83204265,718855927,794625549,805408196,687725267,595021552,506059632,501440078,62410217,164159674,760178931,669714992,758842000,746980363,784203444,696429833,111619804,7914637,347301029,304468748,899653235,847081882,680697110,846183529,75755237,207323293,279409246,202668956,242334104,439377733,523104013,589687448,632497011,985451653,538295113,586481225,901778910,906118006,724756877,70561307,404969410,458452181,785819680,723868345,814662514,568905574,414893521,323628563,815952613,171493363,965032539,220893761,3994637,768570151,852506857,353993667,808581234,303495916,120163073,614744722,510961199,795065938,528988345,474068991,514985405,215637088,911768294,907242544,638358403,836605786,741370583,938586541,53374938,637128871,625391066,239197292,258907047,948748125,484123371,647569621,437371212,914721222,353704754,110485326,869850132,984682008,21010718,172725109,63509271,189727196,741343516,865619259,616363424,235350615,886608983,58557540,246307649,41806755,411124184,465956077,413065349,290895628,360028171,244689498,363374588,584844567,849425883,604581201,225953,21195568,489438804,821199478,259567193,498164472,641126871,566456411,276026683,906535704,181577959,38800275,839723342,514675439,389298329,981737541,456842393,391912462,997404553,502094302,96899918,645611566,357577281,98788419,899180852,422871401,170038607,877283685,163642477,103960236,113201443,410108519,318421754,925497718,794433240,465921086,882688363,994842144,208033882,228299247,825377966,616235723,894900928,196598510,181407588,836033062,345937344,71930470,839880527,294766606,353001090,967452882,729445003,421357405,791115571,139757670,612481688,936039369,253296335,909139305,431996923,925511998,35124269,904875016,714946587,719632502,547011937,906145384,672682557,110346094,894492703,744786361,12065296,650420880,840361838,611976369,38779814,394732253,794949528,146526241,465410322,173773443,980627162,418790505,956255034,142282655,335226749,819836595,762784478,620829194,834776226,632886762,233606915,73566702,37601791,41116948,102257964,821076499,231006658,605223781,596504641,482872781,160182563,93458816,929946419,583946575,707770526,396641987,726654318,885429893,231855124,581110129,723683488,469207489,444695966,237905060,606286784,435410668,66366290,579941433,323828988,83976478,393737468,832138031,526248807,695253864,306529851,994926200,769533372,294270118,44223628,100201600,812749221,507444483,484539872,377558243,812263869,179785891,507179436,113576723,42231429,905920193,363764359,612816963,911466319,184956892,719365046,801950710,716273145,950450858,786469702,325061476,397672411,135405557,442103072,95581278,841158550,353269917,693838427,18983036,158576400,157701139,786217442,319823244,276158637,596695108,150287513,197545477,867003480,483105122,604637718,332597489,544721506,785078271,971090529,87376814,684757459,886748625,553957777,971740024,882396378,857756139,925702856,130735510,560304126,807301659,527770369,845770123,959001521,484882077,988310151,45980574,687696215,57245005,177925333,216337756,850137260,567118675,376822844,530942350,913556688,978012260,300645060,958452817,650921839,546884347,477747880,788735389,877308793,69419263,241470701,639303058,953732882,159562236,548298152,920309813,738859487,570549796,865976185,972620522,854552499,719892374,593255537,36722016,503912356,955130695,115086467,368585517,605017121,2659129,301638619,350244090,501984176,239988530,881285742,166826755,434869833,691011705,56282383,59774202,948455339,634380607,444490933,367925585,104061886,940452264,390679899,321190188,683196003,831024578,92098812,704680306,654408601,893241088,295854533,944194046,53989091,807590637,81534410,241344271,671050565,286548516,319719410,410068404,931658418,524536492,250927219,680795549,534296297,341058800,965681487,929594758,439567785,988416567,118168098,704700712,707472599,284582241,383087940,368831944,455110898,184826827,376807158,866484711,746857185,261041462,584324604,986607268,974887523,338196787,838931164,527934852,12174025,497882193,157698027,168041093,847871129,5763340,532435333,683851831,760117588,614134037,77079577,661306181,763198796,361771553,530714743,392049587,502801626,615729050,357804035,427165342,14117330,372730669,547882598,777679239,485264001,130562527,936213248,222025381,994073160,472500397,867096330,543901801,896404056,829477510,579212526,810636792,781240077,427098369,874248104,378022598,270498931,570361941,971380120,629139328,390952651,66852474,401995001,550495476,215749273,857603250,182469123,284078491,713795530,721954327,720544873,435043914,758470911,277203128,505780779,720359454,993642241,348073375,979088272,861299712,531760838,33358556,57434106,210888560,330485175,903394579,789375051,762081061,311916989,699692025,803001154,478368835,235163165,771020745,145170217,417584289,97847625,6296129,483705006,488654075,612692734,376250788,279128359,48867796,100000
};
signed main()
{
    int T;
    int n;
    init();
    scanf("%lld",&T);
   while(T--){
       scanf("%lld",&n);
       if(n<1500){
           ans=0;
           cal(n);
       }else if(n<10000){
           int x=(n-1500)/100;
           ans=Ans[x];
           //cout<<ans<<'\n';
           int a=100*(n/100);
           int b=n%100;
           cal2(a,b);
       }else if(n<50000){
           int x=(n-10000)/50+(10000-1500)/100;
           ans=Ans[x];
           int a=(50)*(n/50);
           int b=n%50;
           cal2(a,b);
       }else{
           int x=(n-50000)/10+(50000-10000)/50+(10000-1500)/100;
           ans=Ans[x];
           int a=(10)*(n/10);
           int b=n%10;
           cal2(a,b);
       }
   }
}
打表代码:
#include<bits/stdc++.h> #define int long long using namespace std; #define mod 998244353 const int maxn=100000+2; int P[maxn],phi[maxn],cnt=0,B[500*maxn+1]; bool f[maxn]; void init() { phi[1]=1; for(int i=2;i<maxn;i++){ if(!f[i]){ P[cnt++]=i; phi[i]=i-1; } for(int j=0;j<cnt;j++){ if(i*P[j]>maxn)break; f[i*P[j]]=1; if(i%P[j]==0){ phi[i*P[j]]=phi[i]*P[j]; break; } phi[i*P[j]]=phi[i]*(P[j]-1); } } B[0]=1; for(int i=1;i<=500*maxn;i++){ B[i]=(B[i-1]*2)%mod; } } int qp(int x,int n) { int ans=1; int a=x; while(n){ if(n&1){ ans=(ans*a)%mod; } a=(a*a)%mod; n>>=1; } return ans; } int ans=0; void cal(int n) { int i,j=n; int b; for(i=1;i<=n;i++){ b=phi[i]*phi[j]; if(b>=500*maxn){ b=qp(B[phi[i]],phi[j]); } else b=B[b]; if(i!=n) b=(2*b)%mod; ans+=(phi[i]*phi[j])%mod*b%mod; ans%=mod; } cout<<ans<<','; } signed main() { //cout<<sizeof(Ans)/sizeof(Ans[0]); init(); freopen("a.txt","w",stdout); for(int i=1;i<=100000;i++){ cal(i); } }

猜你喜欢

转载自www.cnblogs.com/liulex/p/11447157.html
今日推荐