Pagini recente » Cod sursa (job #3145246) | Cod sursa (job #1001599) | Cod sursa (job #320154) | Cod sursa (job #2356632) | Cod sursa (job #1387847)
#include<fstream>
#include<math.h>
#define nmax 8002
using namespace std;
int ciur[nmax];
long long a,b,db,diviz,s,j,y,i,p,aa,d;
inline long long gcd( long long A, long long B, long long &X, long long &Y )
{
if (B == 0)
{
X = 1;
Y = 0;
return A;
}
long long X0, Y0, D;
D = gcd( B, A % B, X0, Y0 );
X = Y0;
Y = X0 - (A / B) * Y0;
return D;
}
int main ()
{
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
ciur[1]=1;
fin>>a>>b;
y=sqrt(a)+1;
s=1;
for(i=2;i*i<=a;i++)
{
if(ciur[i]==0)
{
for(j=i*i;j<=a;j=j+i)
{
ciur[j]=1;
}
if(a%i==0)
{
diviz=0;
while(a%i==0)
{
diviz=diviz+1;
a=a/i;
}
diviz=diviz*b+1;
db=1;
p=i;
while(diviz!=0)
{
if(diviz%2==1)
{
db=(db*p)%9901;
}
p=(p*p)%9901;
diviz=diviz/2;
}
s=s*(db-1+9901);
s=s%9901;
d=gcd(i-1,9901,p,j);
if(p<=0)
{
p=9901+p%9901;
}
s=s*p;
s=s%9901;
}
}
}
if(a!=1)
{
j=1;
aa=a%9901;
b++;
while(b!=0)
{
if(b%2==1)
{
j=(j*aa)%9901;
}
aa=(aa*aa)%9901;
b=b/2;
}
s=s*(j-1+9901);
s=s%9901;
d=gcd(a-1,9901,p,i);
if(p<=0)
{
p=9901+p%9901;
}
s=s*p;
s=s%9901;
}
fout<<s;
fin.close();
fout.close();
return 0;
}