Pagini recente » Cod sursa (job #1812404) | Cod sursa (job #618595) | Cod sursa (job #835556) | Cod sursa (job #963873) | Cod sursa (job #1786211)
#include <fstream>
using namespace std;
int k,i,j,a,b,p,p1,p2,t,nr,v[1000],w[7100];
int putere(int q, int x, int r)
{
p=1;
while(x)
{
if(x%2) p*=q;
q*=q;
x/=2;
p=p%r;
q=q%r;
}
return p;
}
int main()
{
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
v[1]=2;
k=1;
i=3;
while(i*i<=7071)
{
for(j=i*i; j<=7071; j+=2*i)
w[j]=1;
i+=2;
while(w[i]) i+=2;
}
for(i=3; i<=7071; i+=2)
if(w[i]==0)
{
k++;
v[k]=i;
}
f>>a>>b;
t=9901;
i=1;
p1=1;
p2=1;
while(a>1&&i<=k)
{
if(a%v[i]==0)
{
nr=0;
while(a%v[i]==0)
{
a/=v[i];
nr++;
}
p1*=(putere(v[i],nr*b+1,t)-1);
p2*=(v[i]-1);
}
i++;
}
if(a>1)
{
p1*=(putere(a,b+1,t)-1);
p2*=(a-1);
}
g<<(p1*putere(p2,t-2,t))%t<<'\n';
f.close(); g.close();
return 0;
}