Pagini recente » Cod sursa (job #1061184) | Cod sursa (job #1481587) | Cod sursa (job #1521877) | Cod sursa (job #1642486) | Cod sursa (job #523435)
Cod sursa(job #523435)
#include <fstream>
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
const int M=9901;
int i,A,B,S=1;
void euclid(int a, int b, int &x, int &y)
{
if(b==0)
{
x=1;
y=0;
}
else
{
int x0,y0;
euclid(b,a%b,x0,y0);
x=y0;
y=x0-(a/b)*y0;
}
}
int put(int c, int p)
{
int R=1;
while(p>0)
{
if(p&1) R=R*c % M;
c=c*c % M;
p>>=1;
}
return R;
}
void rez()
{
int p,x,y;
for(i=2;i<=A;i++)
{
if(A%i>0) continue;
p=0;
while(A%i==0)
{
A/=i;
p++;
}
int p1,p2;
p1= ( put(i,p*B+1) - 1) % M;
euclid(i-1,M,x,y);
x=x % M;
while(x<0) x+=M;
p2=x;
S*=(p1 * p2) % M;
S=S % M;
}
}
int main()
{
fin >> A >> B;
rez();
if(A==0) fout << "0";
else fout << S;
}