Pagini recente » Cod sursa (job #185035) | Cod sursa (job #328113) | Cod sursa (job #616188) | Cod sursa (job #1543666) | Cod sursa (job #1505851)
#include <fstream>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int64_t a,b,e=1,x,y,ans,m=9901;
/*int64_t put(int64_t x,int64_t p)
{
if(p)
{
if(p%2)
e=(x*e)%m,put(x,p-1);
else
put((x*x)%m,p>>1);
}
else
return e;
}*/
int64_t put(int64_t N, int64_t K)
{
int64_t s=1;
while (K)
{
if (K&1) s=(s*N)%m;
N=(N*N)%m, K>>=1;
}
return s;
}
void euclid(int64_t a,int64_t b,int64_t *x,int64_t *y)
{
if(!b)
{
*x=1,*y=0;
return;
}
else
{
int64_t x0,y0;
euclid(b,a%b,&x0,&y0);
*x=y0;
*y=x0-(a/b)*y0;
}
}
int main()
{
f>>a>>b;
ans=put(a,b);
ans*=a;
ans--;
ans%=m;
euclid(a-1,m,&x,&y);
while(x<=0)
x+=m;
g<<(ans*x)%m;
}