Cod sursa(job #141065)

Utilizator RichiUngur Richard-Alex Richi Data 22 februarie 2008 18:39:48
Problema Sum Scor 55
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.7 kb
var v:array[1..200000] of longint;
    i,n,x,j,l,d:longint;
    s:int64;
begin
  assign(input,'sum.in');reset(input);
  assign(output,'sum.out'); rewrite(output);
  readln(n);
  for i:=1 to n do begin
    readln(x); l:=x;
    for j:=1 to l do v[j]:=j;
    if x mod 2=0 then begin
      for j:=1 to l div 2 do v[2*j]:=0;
      while x mod 2=0 do x:=x div 2;
    end;
    d:=3;
    while (x>1) do begin
      while (x mod d<>0)and(d*d<=x) do inc(d,2);
      if (d*d>x) then d:=x;
      for j:=1 to l div d do v[j*d]:=0;
      while (x mod d=0)do x:=x div d;
    end;
    s:=0;
    for j:=1 to l-1 do
      if v[j]>0 then s:=s+(2*v[j]+l);
    writeln(s);
  end;
  close(input); close(output);
end.