Pagini recente » Cod sursa (job #1872582) | Cod sursa (job #1548510) | Cod sursa (job #1460709) | Cod sursa (job #766601) | Cod sursa (job #2285458)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
const int MOD = 9901;
long long S = 1;
int pow(long long a, int p)
{
long long x = 1;
while(p > 0)
{
if(p % 2 == 0)
{
p /= 2;
a = a * a % MOD;
}
else
{
p--;
x = x * a % MOD;
}
}
return x;
}
void add(int x,int n)
{
if(x==0)return;
if(x==1)
S=S*(n+1)%MOD;
else
{
S=S*(pow(x,n+1)-1)%MOD*pow(x-1,MOD-2)%MOD;
if(S<0)S+=MOD;
}
}
int main()
{
int A, B, p;
f >> A >> B;
for(int d = 2; d * d <= A; d++)
if(A % d == 0)
{
for(p = 0; A % d == 0; p++, A /= d);
add(d % MOD, B * p);
}
if(A > 1)
add(A % MOD, B);
g << S;
return 0;
}