Cod sursa(job #3221045)
Utilizator | Daescu Gabriel Florin Gabriel_Daescu | Data | 5 aprilie 2024 19:20:12 |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.77 kb |
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int t,i;
long long n,nr,s,d,x,e;
int main()
{
fin>>t;
for(i=1; i<=t; i++)
{
fin>>n;
nr=1;
s=1;
d=2;
e=0;
while(d*d<=n)
{
e=0;
x=n;
while(n%d==0)
{
e++;
n=n/d;
}
if(e>0)
{
x=x/n;
nr=nr*(e+1);
s=s*(x*d-1)/(d-1);
}
d++;
}
if(n>1)
{
nr=nr*2;
s=s*(n*n-1)/(n-1);
}
fout<< nr << " " << s%9973 << "\n";
}
return 0;
}