Cod sursa(job #524233)

Utilizator elffikkVasile Ermicioi elffikk Data 20 ianuarie 2011 19:00:12
Problema Fractii Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.77 kb

var a:array[0..9,1..1000000]of longint;
    n:longint; s:int64;

procedure init;
var f:text; i,j:longint;
begin
  assign(f, 'fractii.in');
  reset(f);
  read(f,n);
  close(f);
  s:=0;
  for i:=0 to 9 do
  for j:=1 to n do
    a[i,j]:=0;
end;

procedure rez;
var f:text;
begin
  assign(f, 'fractii.out');
  rewrite(f);
  write(f,s);
  close(f);
end;

procedure calc;
var i,j,k:longint; p1:int64;
begin
  for i:=2 to n do
  if a[0,i]=0
  then begin
    j:=i;
    while j<=n do
    begin
      inc(a[0,j]);
      a[a[0,j],j]:=i;
      inc(j,i);
    end;
  end;
  
  s:=1;
  for i:=2 to n do
  begin
     p1:=i;
     for k:=1 to a[0,i] do
       p1:=p1*(a[k,i]-1)div a[k,i];
     s:=s+p1*2;
  end;
end;

begin
 init;
 calc;
 rez;
end.