Pagini recente » Cod sursa (job #1258414) | Cod sursa (job #1760207) | Cod sursa (job #2002201) | Cod sursa (job #869564) | Cod sursa (job #2386598)
#include<bits/stdc++.h>
#define ll long long
#define mod 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
ll a, b;
ll fact[1000001];
ll t;
bool v[1000001];
ll prim[1000001], nr=1;
void ciur(ll q)
{
prim[1]=2;
for(ll i=3; i<=q; i+=2)
{
if(v[i]==0)
{
for(ll j=2*i; j<=q; j+=i)
v[j]=1;
prim[++nr]=i;
}
}
}
void desc(ll x)
{
ciur(x);
ll nr1=1;
while(prim[nr1]*prim[nr1]<=x)
{
if(x%prim[nr1]==0)
{
ll ps=0;
while(x%prim[nr1]==0)
{
x/=prim[nr1];
ps++;
}
fact[++t]=prim[nr1];
}
nr1++;
}
if(x>1) fact[++t]=x;
}
ll log_pow(ll x, ll p)
{
ll r=1;
while(p)
{
if((p & 1)) r=(r*x)%mod;
x=(x*x)%mod;
p=p>>1;
}
return r;
}
int main()
{
f>>a>>b;
desc(a);
ll s=1;
for(ll i=1; i<=t; i++)
{
s=(s*(((log_pow(fact[i], b+1)))-1)/(fact[i]-1))%mod;
}
g<<s;
return 0;
}