Cod sursa(job #120777)

Utilizator anaidaanaida anaida Data 6 ianuarie 2008 16:45:07
Problema Fractii Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 14.44 kb
const fr:array[1..1000] of real =(608383,2433175,5472375,9727203,15200915,21886327,29790291,38911563,49243035,
60794971,73564739,87544515,102740003,119163083,136788631,155632695,175700907,196974291,219462323,
243180791,268095703,294241875,321607699,350172279,379960179,410971875,443186099,476618559,511285955,
547143547,584226275,622530367,662043747,702769979,744731875,787885055,832260219,877868703,924665127,
972691431,1021945663,1072395199,1124065919,1176968683,1231067907,1286380539,1342939907,1400670715,1459637563,
1519848527,1581226643,1643845155,1707698715,1772726707,1838985243,1906490123,1975185163,2045085259,2116226111,
2188555011,2262106579,2336893583,2412879483,2490088423,2568522431,2648152399,2728992811,2811104571,2894354335,
2978851639,3064617359,3151518399,3239660831,3329049839,3419598491,3511394711,3604429387,3698658831,3794093195,
3890800331,3988630231,4087708539,4188051355,4289544095,4392292479,4496279091,4601416995,4707797939,4815441751,
4924207659,5034270791,5145555503,5257997315,5371672515,5486580051,5602682027,5720000631,5838572707,5958324607,
6079301507,6201525659,6324902515,6449508567,6575399047,6702423975,6830701735,6960222719,7090895043,7222797499,
7355975735,7490286719,7625858503,7762684079,7900648423,8039860047,8180316927,8321949707,8464797295,8608911603,
8754197331,8900680099,9048474363,9197359899,9347516211,9498936315,9651475675,9805284179,9960357579,10116548835,
10273977451,10432710463,10592540467,10753661967,10916026399,11079510655,11244238291,11410276883,11577391535,11745793383,
11915440063,12086231663,12258272267,12431596155,12606055947,12781680267,12958656635,13136740215,13316083007,13496677451,
13678408055,13861354475,14045623427,14230981395,14417616127,14605541883,14794558879,14984833931,15176373011,15369050595,
15562948247,15758160283,15954493971,16152065607,16350897435,16550851003,16752064859,16954562111,17158154827,17363048471,
17569205355,17776446111,17984939151,18194747867,18405615735,18617792599,18831257915,19045816783,19261605831,19478683719,
19696892535,19916301723,20137067143,20358967155,20582002507,20806436563,21031878347,21258606183,21486685923,21715805499,
21946239195,22177894623,22410656635,22644708219,22880052823,23116441239,23354177383,23593154715,23833218023,24074595195,
24317197835,24560914099,24805889951,25052164483,25299560451,25548185695,25798115123,26049103335,26301352891,26554973631,
26809662891,27065606951,27322835279,27581116339,27840633547,28101553563,28363490411,28626713559,28891239943,29156840875,
29423731287,29691890507,29961152051,30231656835,30503460335,30776388891,31050524087,31326006623,31602533515,31880350839,
32159424339,32439637163,32721147295,33003886195,33287741399,33572804095,33859268139,34146684439,34435466403,34725557063,
35016658583,35309055995,35602792931,35897554687,36193581859,36490962567,36789399635,37089060751,37390125659,37692131139,
37995497087,38300136803,38605835563,38912869875,39221204099,39530534107,39841188407,40153112139,40466137015,40780388791,
41096016235,41412710883,41730594819,42049856175,42370123815,42691744739,43014607767,43338655095,43663807679,43990410595,
44317938287,44646814343,44976943535,45308269679,45640817707,45974662315,46309540915,46645694519,46983234875,47321684231,
47661537927,48002722199,48344886679,48688306155,49033111595,49378906511,49726029747,50074528051,50424005575,50774777547,
51126839275,51479944359,51834348163,52190051183,52546830987,52904964927,53264320863,53624720999,53986406231,54349435283,
54713496967,55078837831,55445632011,55813250143,56182253883,56552545947,56923926943,57296553547,57670543467,58045604051,
58421847595,58799505535,59178096491,59558074647,59939341619,60321652363,60705237107,61090172955,61476087011,61863293075,
62251932047,62641480411,63032337355,63424603687,63817859595,64212373043,64608287011,65005113275,65403283163,65802794323,
66203389619,66605182923,67008373147,67412502215,67817965195,68224780971,68632616155,69041801691,69452222647,69863679751,
70276400759,70690571707,71105672831,71522099839,71939886207,72358581567,72778674603,73200087159,73622508343,74046153491,
74471214247,74897332219,75324692527,75753456451,76183081671,76614087251,77046427467,77479786975,77914492507,78350501527,
78787442103,79225693235,79665354151,80105977087,80548018687,80991374883,81435575839,81881215527,82328106395,82776010423,
83225291471,83675815515,84127507107,84580303715,85034629227,85489896231,85946335447,86404244863,86863177139,87323370803,
87784955879,88247429975,88711182507,89176436859,89642536303,90109971583,90578991215,91048743719,91519833859,91992292795,
92465837519,92940562679,93416731459,93893876683,94372309375,94852075991,95332754207,95814936491,96298264199,96782717359,
97268414619,97755551123,98243524035,98732904655,99223642971,99715288755,100208357195,100702718963,101198097095,101694767583,
102192808851,102691715495,103191991547,103693707539,104196436683,104700269963,105205715439,105711907535,106219486955,106728545419,
107238475131,107749753067,108262358487,108775870115,109290738599,109807078695,110324229087,110842772311,111362733995,111883616447,
112405906919,112929380951,113453936075,113979741863,114506934339,115035181387,115564638463,116095522763,116627223395,117160355467,
117694908135,118230401235,118767135031,119305478775,119844440167,120384871815,120926634619,121469382571,122013511487,122559007963,
123105286447,123653097439,124202152095,124752238511,125303551627,125856327807,126410136979,126965094491,127521501291,128078825911,
128637447559,129197482335,129758513039,130320858531,130884525463,131449168555,132015090583,132582456147,133150675075,133720356623,
134291422151,134863283999,135436561635,136011184439,136586794135,137163630671,137741979019,138321175299,138901708479,139483753711,
140066481695,140650615871,141236302615,141822754187,142410730931,142999955359,143590112903,144181510731,144774448615,145368228083,
145963312971,146559961647,147157378323,147756111619,148356319759,148957518283,149559900695,150163765539,150768554799,151374599879,
151982079351,152590444787,153200125699,153811247143,154423257667,155036735827,155651527707,156267239783,156884245143,157502662699,
158121906799,158742633255,159364819059,159987720807,160612019339,161237792935,161864359631,162492285795,163121700695,163752015823,
164383599911,165016626975,165650561147,166285809367,166922468807,167560021711,168198978163,168839272219,169480475743,170122979547,
170767046603,171411818843,172058010235,172705752995,173354231239,174004122035,174655314259,175307433467,175960937275,176615869931,
177271772471,177928794787,178587466699,179246828451,179907547935,180569777979,181232909315,181897409943,182563271491,183229916215,
183898010079,184567610847,185237926435,185909726415,186582936699,187256928303,187932241835,188609084335,189286691487,189965704443,
190646167727,191327649015,192010321715,192694410763,193379297595,194065655623,194753351531,195441986707,196132068695,196823378155,
197515574731,198209208815,198904252763,199600277007,200297481979,200996272275,201695787643,202396721855,203098997423,203802263339,
204506694419,205212846215,205919602895,206627791471,207337610559,208048045779,208759905547,209473088511,210187336307,210902850147,
211619836475,212337562283,213056630991,213777250247,214498628431,215221453935,215945859735,216670838759,217397341475,218125230467,
218853953443,219584057739,220315513235,221047985523,221781641699,222516831479,223252909339,223990232319,224729096043,225468725071,
226209832595,226952302883,227695721255,228440220199,229186506879,229933292155,230681641771,231431607331,232182194083,232934117679,
233687520819,234441763167,235197365531,235954382387,236712447879,237471725403,238232351807,238993983003,239756798303,240521199799,
241286437075,242053091979,242821049563,243589829259,244359947003,245131767459,245904106003,246678049547,247453468531,248229641575,
249007096691,249786084375,250565816331,251346931223,252129614339,252913032295,253697806163,254484190727,255271118247,256059483427,
256849576235,257640199103,258432528887,259226066183,260020354623,260815960107,261613256315,262411174823,263210660871,264011548759,
264813232619,265616287587,266420755603,267226063467,268032807623,268840862067,269649972663,270460156427,271272140407,272084660587,
272898534131,273714060515,274530349787,275348003763,276167129495,276986949795,277808241475,278631084331,279454496623,280279437379,
281105889855,281933071103,282761658423,283591692691,284422508719,285254778571,286088327967,286923009099,287758775471,288596131475,
289434325391,290273690431,291114731719,291956596755,292799845731,293644442083,294489805339,295336546735,296185044967,297033854739,
297884379079,298736404295,299589035023,300443226499,301298761583,302155229103,303012813371,303872170959,304732154099,305593656195,
306456488667,307320068523,308185034707,309051574843,309918915095,310787748323,311658020787,312528863619,313401137031,314275009435,
315149583043,316025587411,316903088223,317781254899,318660963847,319541973191,320423932003,321307269575,322191936407,323077781359,
323964448919,324853062675,325742116031,326632741635,327524606171,328417528043,329311798607,330207637495,331104131311,332001887599,
332901285131,333801241215,334702938303,335606060031,336509788847,337414851167,338321498771,339228880831,340137666579,341048104579,
341959259787,342871635943,343785672239,344700233843,345616421483,346534133275,347452363787,348372196479,349293462427,350215404415,
351138872851,352063848219,352989369463,353916449987,354845071379,355774349791,356705130599,357637209511,358570197339,359504431815,
360440450531,361377192639,362314977351,363254602419,364194723895,365136261699,366079430507,367023377287,367968663987,368915462287,
369862998495,370811865195,371762539759,372713516571,373666248131,374620434727,375575092703,376531343495,377489153891,378447560243,
379407402571,380368769991,381331008119,382294566911,383259698887,384225322843,385192529055,386161165447,387130576383,388101461039,
389073894447,390046854159,391021266355,391997184723,392974001239,393952116411,394931781819,395912261515,396893976747,397877278191,
398861077503,399846583235,400833552543,401821215467,402810119195,403800906075,404792112291,405784777855,406778955375,407773907915,
408770500927,409768298243,410766827723,411766760887,412768365171,413770410863,414774305551,415779508519,416785371311,417792551611,
418801478243,419810939999,420821830255,421834320583,422847725079,423862157387,424878398019,425895153479,426913258171,427933160979,
428953611667,429975499315,430998907531,432023102963,433048332503,434075535371,435103352435,436132553819,437163520927,438194710183,
439227603707,440261837219,441296901103,442333360827,443371283335,444410178479,445450304543,446491862039,447534279047,448578117199,
449623251955,450669299059,451716834055,452765880887,453815267083,454866359651,455918986919,456972174967,458026842775,459083445615,
460140242615,461198681571,462258526199,463319125671,464381058527,465444622947,466509016099,467574452367,468641812199,469709554859,
470778807655,471849742927,472921256803,473994311463,475068769999,476144076799,477220494479,478298848751,479377401695,480457678903,
481539534263,482622037447,483706032795,484791248979,485877466871,486964825715,488054033019,489143841355,490235040431,491327893915,
492421165575,493515876963,494612414683,495709512579,496808062363,497908161159,499008637939,500110779063,501214504011,502318753155,
503424553979,504532042963,505639851471,506749501071,507860369195,508972018535,510085029863,511199643299,512315087083,513431700419,
514549986615,515668913363,516789203367,517911033411,519033871911,520158030175,521283647943,522409608043,523537178279,524666474287,
525796346251,526927640975,528060663043,529194039671,530329029035,531465461911,532602730111,533741335219,534881591927,536022399375,
537164614175,538308467627,539452937171,540598579871,541746107363,542894368567,544043839187,545195212627,546346822043,547499924963,
548654798519,549809972871,550966911403,552125671267,553284469235,554444943767,555606928719,556769658231,557933846807,559099429175,
560265984243,561433646955,562603106891,563772956171,564944420175,566117401703,567291041675,568466199435,569642848743,570820176043,
571998834247,573179201183,574359945579,575542323339,576726285755,577911059295,579097026835,580284506559,581472679391,582662308547,
583853779039,585045706011,586238971835,587433870187,588629274595,589826074335,591024845235,592223822143,593424739991,594626848947,
595829589439,597033960871,598239905023,599446154095,600654089775,601863742243,603073594667,604285211651,605498246807,606712157391,
607927104783);
prim:array[1..168] of integer=(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,
53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,
157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,
257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,
379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,
491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,
613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,
739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,
859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997);

var  nim,num,s,rez:int64;
     k,i,j,aux,nr,n:longint;
     v:array[1..168] of longint;

procedure citire;
var fi:text;
begin
 assign(fi,'fractii.in');
 reset(fi);
 readln(fi,n);
 close(fi);
end;

procedure afis;
var fo:text;
begin
assign(fo,'fractii.out');
rewrite(fo);
writeln(fo,rez);
close(fo)
end;

begin
  citire;
  if n>1000 then s:=int64(fr[n div 1000])
     else s:=0;
  for i:=1 to n mod 1000 do
      begin
        for j:=1 to nr do v[j]:=0;
        
        k:=(n div 1000)*1000 +i;
        aux:=k;
        nr:=0;j:=0;
        if aux<>1 then
        repeat
          inc(j);
          if j>168 then
             begin
               inc(nr);
               v[nr]:=aux;
               break;
             end
          else
          if aux mod prim[j]=0 then
             begin
               inc(nr);
               v[nr]:=prim[j];
               repeat
                 aux:=aux div prim[j];
               until aux mod prim[j]<>0;
             end;
        until aux=1;
        {pana aici descompune numarul i in factori,rezultatu e vectoru v cu nr elemente}
        begin  {calculeaza numaru lu euclid pt i}
          num:=1;nim:=1;
          for j:=1 to nr do
            begin
              num:=num*(v[j]-1);
              nim:=nim*v[j];
            end;
          rez:=s+((k*num) div nim);
        end;
         s:=rez;
        end;
  rez:=2*rez-1;
  afis
end.