Cod sursa(job #418933)

Utilizator lsorin_94Lodoaba Sorin lsorin_94 Data 16 martie 2010 18:52:55
Problema Fractii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.83 kb
program fractii;
type vec=array [1..1000000] of longint;
var a,b,c,v:vec;
    n,k,i,j:longint;
    f,t:text;

function transS(n:longint; c:vec) :int64;
var s:int64;
begin
  for i:=2 to n do
    s:=s+c[i];
  transS:=2*S+1;
end;

begin
  assign(f,'fractii.in');
  reset(f);
  assign(t,'fractii.out');
  rewrite(t);
  read(f,n);
  close(f);
  {------------------------}
  k:=trunc(sqrt(n));
  for i:=2 to k do
    for j:=1 to n mod i do
      v[i*j]:=i;
  for i:=k+1 to n do
    if v[i]=0 then v[i]=i;
  for i:=2 to n do
    begin
      a[i]:=v[i];
      j:=i div a[i];
      while j div a[i]=0 do
        a[i]=a[i]*v[i];
      b[i]:=i div a[i];
      if b[i]=1 then c[i]:=i-i div v[i]
                else c[i]:=c[a[i]]*c[b[i]];
    end;
  {------------------------}
  write(t,transS(n,c));
  close(t);
end.