Cod sursa(job #118292)

Utilizator bogdan88Bogdan Popescu bogdan88 Data 24 decembrie 2007 10:42:07
Problema Sum Scor 85
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.68 kb
var fi,fo:text;
    phi:array[1..100001] of int64;
    n:int64;
procedure ciur;
var i,j:longint;
begin
  for i:=1 to 100000 do
    phi[i]:=i;
  for i:=2 to 100000 do
     if phi[i]=i then
       begin
         j:=i;
         while j<=100000 do
           begin
             phi[j]:=phi[j] div i;
             phi[j]:=phi[j]*(i-1);
             inc(j,i);
           end;
       end;
end;
var x,sol,t:int64;
    i:longint;
begin
  assign(fi,'sum.in'); reset(fi);
  assign(fo,'sum.out'); rewrite(fo);
  ciur;
  read(fi,t);
  for i:=1 to t do
    begin
      read(fi,x);
      sol:=phi[x]*x shl 1;
      writeln(fo,sol);
    end;
  close(fi);
  close(fo);
end.