Pagini recente » Cod sursa (job #1998999) | Cod sursa (job #711600) | Cod sursa (job #1025983) | Monitorul de evaluare | Cod sursa (job #13139)
Cod sursa(job #13139)
{$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.