Pagini recente » Cod sursa (job #1794079) | Cod sursa (job #855980) | Cod sursa (job #3152167) | Cod sursa (job #6695) | Cod sursa (job #295586)
Cod sursa(job #295586)
#include<stdio.h>
FILE*f=fopen("sumdiv.in","r");
FILE*g=fopen("sumdiv.out","w");
long long a,b;
int ba[101],ex[101],n,pr=1;
long long mod(long long x,long long y,long long z)
{
if(y==1) return x%z;
else if(y%2==0) return (mod(x,y/2,z)*mod(x,y/2,z))%z;
else return (mod(x,y-1,z)*mod(x,1,z))%z;
}
void fact()
{
int d=3,p=0;
while(a%2==0)
{
p++;
a/=2;
}
ba[++n]=2;ex[n]=p;
while(a!=1)
{
p=0;
while(a%d==0)
{
p++;
a/=d;
}
if(p) {
ba[++n]=d;
ex[n]=p;
}
d+=2;
}
}
void sum()
{
int i,s,j;
long long x,y,t;
for(i=1;i<=n;i++)
{
x=ba[i];y=ex[i]*b;
s=1;
for(j=1;j<=y;j++)
{
t=mod(x,j,9901);
s=(s+t)%9901;
}
pr=(pr*s)%9901;
}
fprintf(g,"%d",pr);
}
int main()
{
fscanf(f,"%lld%lld",&a,&b);
fact();
sum();
fcloseall();
return 0;
}