Pagini recente » Cod sursa (job #953871) | Cod sursa (job #636997) | Cod sursa (job #2839405) | Cod sursa (job #2541374) | Cod sursa (job #1387712)
#include<fstream>
#include<math.h>
#define nmax 8002
using namespace std;
int ciur[nmax],diviz[nmax],i;
long long a,b,db[nmax],s,j,y;
int main ()
{
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
ciur[1]=1;
fin>>a>>b;
y=sqrt(a)+1;
for(i=2;i*i<=y;i++)
{
if(ciur[i]==0)
{
for(j=i*i;j<=y;j=j+i)
{
ciur[j]=1;
}
}
}
for(i=2;i<=y;i++)
{
if(ciur[i]==0)
{
while(a%i==0)
{
diviz[i]=diviz[i]+1;
a=a/i;
}
}
}
s=1;
for(i=2;i<=y;i++)
{
if(diviz[i]!=0)
{
diviz[i]=diviz[i]*b;
db[i]=1;
while(diviz[i]+1!=0)
{
db[i]=db[i]*i;
diviz[i]=diviz[i]-1;
}
s=s*(db[i]-1)/(i-1);
s=s%9901;
}
}
if(a!=1)
{
j=1;
while(b+1!=0)
{
j=(j*a)%9901;
b--;
}
s=s*(j-1)/(a-1);
s=s%9901;
}
fout<<s;
fin.close();
fout.close();
return 0;
}