Pagini recente » Cod sursa (job #454172) | Cod sursa (job #3219432) | Cod sursa (job #1650715) | Cod sursa (job #2748078) | Cod sursa (job #756794)
Cod sursa(job #756794)
#include <stdio.h>
int a,b,sol=1,modulo=9901;
int power(int x,int y)
{
int r=1;
x%=modulo;
while (y)
{
if(y&1)
r=(r*x)%modulo;
x=(x*x)%modulo;
y>>=1;
}
return r;
}
int suma(int a, int 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,"%d%d",&a,&b);
fclose(f);
if (b != 0)
{
int i=2;
while (i*i <= a)
{
i++;
if (a % i == 0)
{
int c=0;
while (a % i == 0)
{
c++;
a=a/i;
}
sol=(sol*(suma(i,c*b)+1)%modulo)%modulo;
}
}
if (a > 1)
{
sol=(sol*(suma(a,b)+1)%modulo)%modulo;
}
}
FILE* g = fopen("sumadiv.out","w");
fprintf(g,"%d\n",sol);
fclose(g);
return 0;
}