Cod sursa(job #554349)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 14 martie 2011 19:40:22
Problema Suma si numarul divizorilor Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 1 kb
var v:array[1..1000000] of boolean;
    pr:array [1..80000] of int64;
    ii, i, j, m, t:longint;
    nr, s, p, r, x:int64;
    f, g:text;

begin
assign (f, 'ssnd.in'); reset (f);
assign (g, 'ssnd.out'); rewrite (g);

{ciurul lui eratostenos}
m:=0;
for i := 2 to 1000000 do
  begin
  if v[i]= false then
    begin
    j:= i;
    while j <= 1000000 do begin v[j]:=true; j:=j+i; end;
    m:=m+1;
    pr[m]:=i;
    end;
  end;

read (f, t);
for ii := 1 to t do
  begin
  nr:=1; s:=1;
  read (f, x);
  i:=0;
  while x<>1 do
    begin
    i:=i+1;
    if x mod pr[i] = 0 then
      begin
      p:=0;
      while x mod pr[i]=0 do
        begin
        p:=p+1;
        x:= x div pr[i];
        end;
      nr:=nr*(p+1);     {formula numar}
      r:=1;
      for j := 1 to p+1 do r:=r*pr[i] mod 9973;             {ridicare la putere}
      s:=(s*(r-1)div(pr[i]-1)) mod 9973;         {formula suma}
      end;
    end;
  writeln (g, nr,' ', s);
  end;

close (f); close (g);
end.