Pagini recente » Cod sursa (job #1129226) | Cod sursa (job #3152727) | Cod sursa (job #256030) | Cod sursa (job #587821) | Cod sursa (job #612695)
Cod sursa(job #612695)
#include<fstream.h>
#define M 9901
#define lul unsigned long long
lul v[50],u[50],y,x,i,a,b,j,k,m,t,z,p=1,r;
int main()
{ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
f>>a>>b;
for(i=2;i*i<=a;i++)
{j=0;
while(a%i==0)
j++,a/=i;
if(j)
v[++k]=i,u[k]=j;}
if(a>1)
v[++k]=a,u[k]=1;
for(i=1;i<=k;i++)
{m=b*u[i]+1,z=y=1,x=v[i]%M,t=M-2,r=(v[i]-1)%M;
while(m)
{if(m%2)
y=(y*x)%M;
m/=2;
x=(x*x)%M;}
if(y)
y--;
else
y=M-1;
while(t)
{if(t%2)
z=(z*r)%M;
t/=2;
r=(r*r)%M;}
if(y<0)
y=M-1;
if(z<0)
z=M-1;
p=(p*y*z)%M;}
g<<p;
return 0;}