Cod sursa(job #1906626)
Utilizator | Data | 6 martie 2017 15:26:38 | |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <fstream>
using namespace std;
int 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;
}