Pagini recente » Cod sursa (job #1860369) | Cod sursa (job #142183) | Cod sursa (job #2409809) | Cod sursa (job #747028) | Cod sursa (job #898626)
Cod sursa(job #898626)
#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
FILE *f=fopen("sumdiv.in","r");
FILE *g=fopen("sumdiv.out","w");
bool prim[10001];
int v[10001],i,j,a,b,nr,pt[10001];
long long sum;
void ciur()
{
int i,j;
for(i=2;i<=10000;i++)
if(!prim[i])
{
v[++v[0]]=i;
for(j=i*i;j<=10000;j+=i)
prim[j]=1;
}
}
int main()
{
fscanf(f,"%d",&a);
fscanf(f,"%d",&b);
i=1;
sum=1;
ciur();
while(sqrt(a)>v[i])
{
while(a%v[i]==0){pt[i]++;a/=v[i];}
i++;
}
if(a>1)
{
nr=1;
for(j=1;j<=b+1;j++)
nr=(nr*a)%9901;
nr--;
nr=nr/(a-1);
sum=(long long)sum*nr;
sum%=9901;
}
for(i=1;i<=v[0];i++)
{
if(pt[i])
{
nr=1;
for(j=1;j<=pt[i]*b+1;j++)
nr=(nr*v[i])%9901;
nr--;
nr=nr/(v[i]-1);
sum=(long long)sum*nr;
sum%=9901;
}
}
fprintf(g,"%d",sum);
fclose(g);
return 0;
}