Cod sursa(job #1444365)
| Utilizator | Data | 29 mai 2015 17:18:51 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long t,x,i,s,d,y,nr,p,n,v;
int main()
{f>>t;
for(i=1;i<=t;i++)
{
f>>n;
s=1;
d=2;
x=n;
nr=1;
while(n!=1 && d*d<=x)
{
p=0; v=d;
while(x%d==0)
{
p++;
v=v*d;
x=x/d;
}
nr=nr*(p+1);
s=s*(v-1)/(d-1);
d++;
}
if(x!=1) {nr*=2;
s=s*(x*x-1)/(x-1);}
s=s%9973;
g<<nr<<" "<<s<<endl;
}
return 0;
}
