Pagini recente » Cod sursa (job #231292) | Cod sursa (job #142780) | Cod sursa (job #1693380) | Cod sursa (job #1307123) | Cod sursa (job #539755)
Cod sursa(job #539755)
#include<stdio.h>
#define MOD 9901
int cnt,i=2,sol=1;
long long A,B;
FILE *in,*out;
int putere(int a,int b)
{
int rez=1,n=a%MOD;
for(int q=0;(1<<q)<=b;q++)
{
if((1<<q) & b)
rez=(rez*n)%MOD;
n=(n*n)%MOD;
}
return rez;
}
int sum(int a,int b)
{
if(b==1)
return a%MOD;
if(b & 1)
return(sum(a,b-1)+putere(a,b))%MOD;
return ((putere(a,b/2)+1)*sum(a,b/2))%MOD;
}
int main()
{
in=fopen("sumdiv.in","rt");
out=fopen("sumdiv.out","wt");
fscanf(in,"%lld %lld",&A,&B);
if(!B)
{
fprintf(out,"1\n");
return 0;
}
for(i=2;i*i<=A;i++)
{
if(!(A%i))
{
for(;A%i==0;)
{
A/=i;
cnt++;
}
sol=sol*(sum(i,cnt*B)+1)%MOD;
}
}
if(A!=1)
sol=sol*(sum(A,B)+1)%MOD;
fprintf(out,"%d",sol);
return 0;
}