Pagini recente » Cod sursa (job #2380904) | Cod sursa (job #2394735) | Cod sursa (job #2742526) | Cod sursa (job #571173) | Cod sursa (job #757389)
Cod sursa(job #757389)
#include <fstream>
#include <cmath>
#define MOD 9901
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int putere(long long a, long long b)
{
fin>>a>>b;
long long d=1;
long long bin[10000];
bin[0]=0;
while(b)
{
bin[++bin[0]]=b%2; b/=2;
}
for(int i=bin[0];i>=1;i--)
{
d=d*d;
if(bin[i])
d=d*a;
if(d>MOD+3)
d = d % MOD;
}
return d;
}
int main()
{
int n,k;
long long sum = 1;
fin>>n>>k;
int aux = n;
for(int i=2;i<=sqrt(aux)+1;i++)
{
if(n%i==0)
{
long long exp = 0;
while(n%i == 0)
{
exp++;
n /= i;
}
exp*=k;
int rez = putere(i,exp)%MOD-1;
sum *=(i*rez/(i-1));
if(sum>MOD)
sum = sum%MOD;
}
}
fout<<sum<<'\n';
fin.close();
fout.close();
return 0;
}