Pagini recente » Cod sursa (job #2770633) | Cod sursa (job #1529931) | Cod sursa (job #1888092) | Cod sursa (job #872756) | Cod sursa (job #2632284)
#include <iostream>
#include <fstream>
using namespace std;
unsigned long long p[100005],exp[100005];
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");
int main()
{
int n,b;
in>>n>>b;
if(n==0)
out<<0;
else
if(b==0||n==1)
out<<1;
else
{
unsigned long long c,d,i,sd=1;
c=n;
d=2;
while(c%d==0)
{
p[1]=d;
c/=d;
exp[1]++;
}
if(p[1]==d)
i=2;
else
i=1;
d=3;
while(c>1)
{
while(c%d==0)
{
p[i]=d;
c/=d;
exp[i]++;
}
if(p[i]==d)
i++;
d+=2;
}
for(c=1;c<i;c++)
{
unsigned long long t=1,k=1,j;
for(j=1;j<=exp[c];j++)
t*=p[c];
for(j=1;j<=b;j++)
k*=t;
k*=p[c];
sd*=(k-1)/(p[c]-1);
}
out<<sd%9901;
}
return 0;
}