Cod sursa(job #216449)

Utilizator Tase_CCapalna Tanase Tase_C Data 24 octombrie 2008 16:57:52
Problema Sum Scor 40
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.57 kb
var v,z:array[1..100000] of byte;
    t,nr,i,j,n,x:longint;
    s:int64;
begin
  assign(input,'sum.in'); reset(input);
  assign(output,'sum.out'); rewrite(output);
  readln(n);
  for t:=1 to n do begin
    readln(x); s:=0; v:=z; nr:=x;
    i:=2;
    while nr>1 do begin
      while (nr mod i<>0)and(i*i<=nr) do inc(i,1+i mod 2);
      if (i*i>nr) then i:=nr;
      while nr mod i=0 do nr:=nr div i;
      for j:=1 to (2*x)div i do
        v[i*j]:=1;
    end;
    s:=0; for i:=1 to 2*x do s:=s+i*(1-v[i]);
    writeln(s);
  end;
  close(input); close(output);
end.