Cod sursa(job #181194)
| Utilizator | Data | 17 aprilie 2008 23:27:05 | |
|---|---|---|---|
| Problema | Suma divizorilor | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <stdio.h>
long a,b,i,c,p=1,nr;
void factorizare(long,long);
int main()
{
freopen ("sumdiv.in","r",stdin);
freopen ("sumdiv.out","w",stdout);
scanf("%ld %ld",&a,&b);nr=a;
for (i=2;i<=a;i++)
if (nr%i==0){
while (nr%i==0){
c++;nr/=i;
}
c*=b;
factorizare(i,c);
c=0;
}
printf("%ld",p);
return 0;
}
void factorizare(long nrp,long exp)
{
int val=1,k=1;
int s=1;
while(k<=exp)
{s+=nrp*val;val*=nrp;k++;}
s=s%9901;
p*=s;
}
