Cod sursa(job #305222)

Utilizator Teodor94Teodor Plop Teodor94 Data 16 aprilie 2009 18:12:32
Problema Fractii Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.71 kb
var f,g:text;
    n,i,j,nr:longint;
    a:array[0..1000000] of word;
    p:array[0..1000000] of boolean;
begin
  assign(f,'fractii.in'); reset(f);
  assign(g,'fractii.out'); rewrite(g);
  read(f,n);
  p[1]:=true;
  for i:=1 to n do
    if not p[i] then
      begin
        j:=i;
        while j+i<=n do
          begin
            j:=j+i;
            p[j]:=true;
          end;
      end;
  nr:=1;
  for i:=2 to n do a[i]:=i;
  for i:=2 to n do
    if not p[i] then
      begin
        j:=i;
        while j<=n do
          begin
            a[j]:=(a[j] div i)*(i-1);
            j:=j+i;
          end;
      end;
  for i:=2 to n do nr:=nr+2*a[i];
  writeln(g,nr);
  close(f); close(g);
end.