Pagini recente » Cod sursa (job #2365944) | Cod sursa (job #1979656) | Cod sursa (job #162291) | Cod sursa (job #1158949) | Cod sursa (job #228438)
Cod sursa(job #228438)
#include<stdio.h>
#define M 9901
FILE*f=fopen("sumdiv.in","r");
FILE*g=fopen("sumdiv.out","w");
int a,b,P=1;
int putere(int a, int b) //ridic a la puterea b
{
int rez=1;
while(b)
{
if(b%2==0)
{
a=(a*a)%M;
b/=2;
}
else
{
--b;
rez=(rez*a)%M;
}
}
return rez;
}
void solve(int n, int b)
{
int sol,i,r;
for(i=2;i*i<=n;++i)
{
if(n%i==0)
{
for(r=0;n%i==0;++r,n/=i);
r*=b;
// calculez i^0 + i^1 + ... + i^r
sol=((putere(i,r+1)-1) * putere(i-1, 9901-2))%M;
P=(P*sol)%M;
}
}
if(n>1)
{
r=b;
// calculez i^0 + i^1 + ... + i^r
sol=((putere(n,r+1)-1) * putere(n-1, 9901-2))%M;
P=(P*sol)%M;
}
fprintf(g,"%d\n",P);
}
int main()
{
fscanf(f,"%d %d",&a,&b);
solve(a,b);
return 0;
}