Pagini recente » Cod sursa (job #794076) | Cod sursa (job #2565098) | Cod sursa (job #1574958) | Cod sursa (job #2292384) | Cod sursa (job #756818)
Cod sursa(job #756818)
#include <stdio.h>
long long a,b,sol=1,modulo=9901;
long long power(long long x,long long y)
{
long long r=1;
x%=modulo;
for (;y;y>>=1)
{
if(y&1)
r=(r*x)%modulo;
x=(x*x)%modulo;
}
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
{
if (a % i == 0)
{
do
{
c++;
a=a/i;
}
while (a % i == 0);
sol=(sol*(suma(i,c*b)+1)%modulo)%modulo;
}
i++;
}
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;
}