Pagini recente » Cod sursa (job #410924) | Cod sursa (job #2610072) | Cod sursa (job #1121275) | Cod sursa (job #3220246) | Cod sursa (job #756809)
Cod sursa(job #756809)
#include <stdio.h>
#include <cstdio>
long long a,b,sol=1,modulo=9901;
long long power(long long x,long long y)
{
long long r=1;
x%=modulo;
do
{
if(y&1)
r=(r*x)%modulo;
x=(x*x)%modulo;
y>>=1;
}
while (y);
return r;
}
long long suma(long long a, long long b)
{
if (b==1)
return a%modulo;
if (b&1)
return (suma(a,b-1)+power(a,b))%modulo;
return ((power(a,b>>1)+1)*suma(a,b>>1))%modulo;
}
int main ()
{
FILE* f = fopen("sumadiv.in","r");
fscanf(f,"%lld%lld",&a,&b);
fclose(f);
if (b != 0)
{
long long i=2;
long long c=0;
do
{
i++;
if (a % i == 0)
{
do
{
c++;
a=a/i;
}
while (a % i == 0);
sol=(sol*(suma(i,c*b)+1)%modulo)%modulo;
}
}
while (i*i <= a);
if (a > 1)
{
sol=(sol*(suma(a,b)+1)%modulo)%modulo;
}
}
FILE* g = fopen("sumadiv.out","w");
fprintf(g,"%lld\n",sol);
fclose(g);
return 0;
}