Cod sursa(job #815049)
| Utilizator | Data | 16 noiembrie 2012 15:56:47 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 10 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
procedure nr_div(n:int64; var k:longint; var s:int64);
var r,i:longint;
begin
k:=0; s:=0;
r:=trunc(sqrt(n));
for i:=1 to r do
if n mod i=0
then begin
k:=k+2;
s:=s+i+(n div i);
end;
if frac(sqrt(n))=0
then begin
k:=k-1;
s:=s-r;
end;
end;
var f1,f2:text;
i,k,t:longint;
s,n:int64;
begin
assign(f1, 'ssnd.in');
reset(f1);
assign(f2, 'ssnd.out');
rewrite(f2);
readln(f1, t);
for i:=1 to t do
begin
readln(f1, n);
nr_div(n,k,s);
writeln(f2, k,' ', s);
end;
close(f2);
end.
