Pagini recente » Cod sursa (job #1477537) | Cod sursa (job #1599534) | Cod sursa (job #1510115) | Cod sursa (job #2368063) | Cod sursa (job #582537)
Cod sursa(job #582537)
#include<cstdio>
using namespace std;
#define MOD 9901
#define LL long long
int N,M;
LL suma=1,baza=0;
inline int mod(int a)
{
if (a>=MOD)
a%=MOD;
return a;
}
inline LL putere(LL n,int p)
{
if (!p)
return 1;
if (p&1)
return ((n%MOD)*putere((n%MOD)*(n%MOD),p>>1))%MOD;
return (putere((n%MOD)*(n%MOD),p>>1))%MOD;
}
inline void desc()
{
int i=2;
for ( i=2; i*i<=N ; ++i)
{
if (N%i!=0)
continue;
int p=0;
while (N%i==0)
{
N/=i;
++p;
}
if (!p)
continue;
int n=mod(i);
baza=putere((LL)n,M*p+1);
if (baza-1<0)
baza=MOD-baza;
n=mod(i);
suma=mod((LL)(baza-1)/(LL)(n-1)*(LL)suma);
}
if (N-1)
{
int n=mod(N);
baza=putere(n,M+1);
if (baza-1<0)
baza=MOD-baza;
n=mod(N);
suma=mod((baza-1)/(LL)(n-1)*suma);
}
printf("%lld ",suma);
}
inline void citire()
{
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
scanf("%d%d",&N,&M);
desc();
}
int main()
{
citire();
return 0;
}