Pagini recente » Cod sursa (job #3264651) | Cod sursa (job #2460230) | Cod sursa (job #1814267) | Cod sursa (job #575526) | Cod sursa (job #756701)
Cod sursa(job #756701)
#include<fstream>
#define mod 9901
#define ll long long
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
long long A, B, S;
long long put(ll a, ll b)
{
if(!b) return 1;
if(b % 2)
return (a * put(a,b - 1)) % mod;
long t = put(a, b/2) % mod;
return (t * t) %mod;
}
long long desc(ll x, ll nr)
{
nr *= B;
ll aux1 = (put(x, nr + 1) ) % mod;
if(aux1 == 0 )
aux1 = mod - 1;
else
--aux1;
ll aux2 = put(x - 1, mod - 2) % mod;
return (aux1 * aux2) %mod;
}
void read()
{
S = 1;
fin >>A>>B;
for(int i = 2; i * i <= A ; ++i)
{
if(A % i == 0)
{
ll nr = 0;
while(A % i == 0)
A /= i, ++nr;
long long K = desc(i, nr) %mod;
S = (S * K )% mod;
}
}
//fout << put( 2, 10) ;
if(A != 1)
S = (S * desc(A, 1)) % mod;
fout <<S;
}
int main()
{
read();
fin.close();
return 0;
}