Cod sursa(job #1906636)
Utilizator | predescu SebastianPredescuIon1 | Data | 6 martie 2017 15:31:09 |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
long long n,d,nd,p,k,s,i,t,a;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int main()
{
f>>t;
for(a=1; a<=t; a++)
{
f>>n;
d=2;
nd=1;
s=1;
while(n>1)
{
p=0;
k=d;
while(n%d==0)
{
p++;
k=k*d;
n=n/d;
}
nd=nd*(p+1);
if(p!=0)s=(s*(k-1)/(d-1))%9973;
d++;
if(d*d>n)d=n;
}
g<<nd<<" "<<s%9973<<'\n';
}
return 0;
}