Cod sursa(job #153006)
| Utilizator | Data | 9 martie 2008 23:34:58 | |
|---|---|---|---|
| Problema | Suma divizorilor | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.76 kb |
#include<fstream.h>
#define NR 9901
const int n_max = 10001;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
void div(unsigned int,unsigned int,unsigned int);
int main()
{
unsigned int i, n, p,m,S=0,D,aux;
long long a, sol = 1;
f>>n>>p;
a = n;
for (i=0;(1<<i)<=p;++i)
{
if (((1<<i)&p)>0)
sol=(sol*a);
aux=sol;
a=(a*a)%m;
}
// g<<i;
div(aux,i,S);
return 0;
}
void div(unsigned int aux,unsigned int i,unsigned int S)
{ S=0;
for(i=1;i<=aux;i++)
if(aux%i==0) S+=i; g<<S%NR;
}
