Cod sursa(job #13139)

Utilizator mariuscris90giuroiu marius mariuscris90 Data 5 februarie 2007 20:50:49
Problema Fractii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.9 kb
{$n+}
program fractiii;
type vec=array[1..20] of longint;
     vector=array[1..1000000] of record
                           x:boolean;
                           y:vec;
                           l:byte;end;
var a:vector;
    n,z,i,j,s1,p:longint;
    t:boolean;
    s:extended;
    f,g:text;
begin
assign(f,'fractii.in');assign(g,'fractii.out');reset(f);rewrite(g);
read(f,n);
for i:=2 to n do begin
z:=i;
while z<n do begin
z:=z+i;
a[z].x:=true;t:=true;
for j:=1 to a[z].l do
if i mod a[z].y[j]=0 then
begin t:=false;break;end;
if t then begin
a[z].l:=a[z].l+1;a[z].y[a[z].l]:=i;end;
end;
end;
for i:=2 to n do begin
if a[i].x=false then s:=s+(n-(n div i))
                else begin
p:=1;s1:=0;
for j:=1 to a[i].l do begin
p:=p*a[i].y[j];s1:=s1+(n div a[i].y[j]);end;
if s1<>n div p then
s1:=s1-(n div p);
s1:=n-s1;s:=s+s1;end;end;
s:=s+n;write(g,s:0:0);
close(f);close(g);end.