Pagini recente » Cod sursa (job #2654916) | Cod sursa (job #2474202) | Cod sursa (job #829982) | Cod sursa (job #3176577) | Cod sursa (job #719388)
Cod sursa(job #719388)
#include <fstream>
using namespace std;
#define dim 1001
#define mod 9901
int factor[dim], putere[dim];
int solve(int k)
{
int baza=factor[k];
int p=putere[k]+1;
int sol=1;
for(;p;p>>=1)
{
if(p&1)
sol=(sol*baza)%mod;
baza=(baza*baza)%mod;
}
--sol;
int aux=sol;
p=mod-2;
sol=1;
baza=factor[k]-1;
for(;p;p>>=1)
{
if(p&1)
sol=(sol*baza)%mod;
baza=(baza*baza)%mod;
}
return (aux*sol)%mod;
}
int main()
{
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int a, b, aux, nr=0,i;
fin>>a >>b;
aux=a;
for(i=2;i*i<=a;++i)
if(aux%i==0)
{
factor[++nr]=i;
while(aux%i==0)
{
++putere[nr];
aux/=i;
}
putere[nr]*=b;
}
if(aux!=1)
{
factor[++nr]=aux;
putere[nr]=b;
}
int s=1;
for(i=1;i<=nr;++i)
s=(s*solve(i))%mod;
fout<<s;
return 0;
}