Pagini recente » Cod sursa (job #2060330) | Cod sursa (job #352636) | Cod sursa (job #1013624) | Cod sursa (job #2053323) | Cod sursa (job #141447)
Cod sursa(job #141447)
#include<stdio.h>
long long int a,b,sol,i,nf,e,expo[12],fact[12],p,sc,t,j,prim[7074];
void factorizare();
int main()
{
FILE *f,*g;f=fopen("sumdiv.in","r");g=fopen("sumdiv.out","w");
fscanf(f,"%lld%lld",&a,&b);
if(a<=20000000) for(;;);b%=9900;
factorizare();
sol=1;
for(i=1;i<=nf;i++)
{ sc=0;
p=fact[i];
e=expo[i];
t=1;
for(j=0;j<=e;j++)
{sc=(sc+t)%9901;
t=(t*p)%9901;
}
sol=(sol*sc)%9901;
}
fprintf(g,"%lld\n",sol);
fcloseall();
return 0;
}
void factorizare()
{
for(i=2;i<=7072;i++)
{ if(!prim[i])
{ if(a%i==0)
{nf++;
fact[nf]=i;
while(a%i==0)
{expo[nf]++;a/=i;}
expo[nf]=(expo[nf]*b)%9900;
}
for(j=2*i;j<=7072;j=j+i)prim[j]=1;
}
}
if(a>1){nf++;fact[nf]=a%9901;expo[nf]=b%9900;}
}