Pagini recente » Cod sursa (job #16129) | Cod sursa (job #1661369) | Cod sursa (job #1514295) | Cod sursa (job #2182720) | Cod sursa (job #2632052)
#include <fstream>
using namespace std;
long long fact[20];
long long put[20];
inline long long Putere(long long A , long long n)
{
long long rez=1;
for(int j=n;j!=0;j>>=1)
{
if(j&1)
{
rez*=A;
rez%=9901;
}
A=1LL*A*A;
A%=9901;
}
if(rez==0)
{
rez=9900;
}
else
{
rez--;
}
return rez;
}
int main()
{
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
int a,b,poz=0;
cin>>a>>b;
int d=2,cnt=0;
while(a>1&&d*d<=a)
{
cnt=0;
while(a%d==0)
{
a/=d;
cnt++;
}
if(cnt!=0)
{
fact[poz]=d;
put[poz]=cnt*b+1;
poz++;
}
d++;
}
if(a>1)
{
fact[poz]=a;
put[poz]=b+1;
poz++;
}
long long sum=1;
for(int i=0;i<poz;i++)
{
long long x=Putere(fact[i],put[i]);
x/=(fact[i]-1);
sum*=x;
sum%=9901;
}
cout<<sum<<'\n';
return 0;
}