type long=array[1..1000001] of integer; var ar,y,x:long; a,c,d,j,nx,ny,k:longint; Procedure Sum(var x,y:long; var nx,ny:longint); var p,q,nl,i:integer; Begin If nx>ny then nl:=nx else nl:=ny; p:=0; For i:=1 to nl do Begin q:=x[i]+y[i]+p; x[i]:=q mod 10; p:=q div 10; End; If p=1 then Begin nx:=nl+1; x[nx]:=1; End else nx:=nl; End; Procedure DivLong(j:longint); var d:longint; Begin Fillchar(ar,sizeof(ar),0); d:=200; a:=10; repeat dec(d); if a>j then begin ar[d]:=a div j; a:=a mod j; end; a:=a*10; until (a=0) or (d=0);{For k:=199 downto 190 do Write(ar[k]);WritelN;} end; begin ny:=200; readln(k); For j:=1 to k do Begin DivLong(j); Sum(x,ar,nx,ny); End; Write(x[nx],'.'); For j:=nx-1 downto 1 do Write(x[j]); end.