Cod sursa(job #581424)
| Utilizator | Data | 14 aprilie 2011 10:14:59 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include<fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long powA(long long baza, long long exponent)
{long long k,putere;
putere=1;
for(k=1;k<=exponent+1;k++)
putere*=baza;
return putere;
}
int main()
{ long long n,nrdiv,sumadiv,j,fm,i; int t;
f>>t;
for(j=1;j<=t;j++)
{
f>>n; nrdiv=sumadiv=1; i=2;
do{fm=0;
while(n%i==0)
{fm++;
n/=i;}
nrdiv*=(fm+1);
sumadiv*=(powA(i,fm)-1)/(i-1);
i++;
}while(n!=1);
g<<nrdiv<<" "<<sumadiv%9973<<'\n';}
}
