Cod sursa(job #1851520)
Utilizator | Data | 19 ianuarie 2017 20:43:25 | |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int main()
{ int i,a,n,d,ct,di,s,j,g;
fin>>a;
for(i=0;i<a;i++)
{d=2;
di=s=1;
fin>>n;
while(n!=1)
{ct=0;
while(n%d==0)
{n=n/d;
ct++;
}
if(ct>0){di=di*(ct+1);g=1;for(j=1;j<=ct+1;j++)g=g*d;s=s*(g-1)/(d-1);}
if(d*d<n)d++;
else d=n;
}
fout<<di<<" "<< s%9973<<"\n";
}
return 0;
}