Pagini recente » Cod sursa (job #2751525) | Cod sursa (job #1892488) | Cod sursa (job #1836721) | Cod sursa (job #1458819) | Cod sursa (job #1902640)
#include <fstream>
#include <bitset>
using namespace std;
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");
unsigned long long a,b;
bitset <10001> ciur;
void ciurr()
{
int i,j;
ciur[1]=ciur[0]=1;
for(i=4;i<=10000;i++)
ciur[i]=1;
for(i=3;i*i<=10000;i+=2)
if(ciur[i]==1)
for(j=i*i;j<=10000;j++)
ciur[i]=0;
}
unsigned long long put(unsigned long long n,unsigned long long p)
{
unsigned long long r=1,c;
while(p!=1)
{
if(p%2==0)
{
p=p/2;
n=(n*n);
}
else
{
p=p-1;
r=(r*n);
}
}
n=n*r;
return n;
}
void desc()
{
unsigned long long j=2,p,n=9901;
unsigned long long sol=1;
for(j=2; j*j<=a; j++)
{
if(a%j==0)
{
p=0;
while(a%j==0)
{
p++;
a/=j;
}
p*=b;
sol*=((put(j,p+1)-1)/(j-1));
sol%=n;
}
}
if(a!=1)
{
p=b;
sol*=((put(a,p+1)-1)/(a-1));
sol%=n;
}
out<<sol%n;
}
int main()
{
in>>a>>b;
ciurr();
desc();
return 0;
}