Pagini recente » Cod sursa (job #2640233) | Profil Politehnica_Pascu_Corneliu_Florin | Cod sursa (job #915959) | maricei3 | Cod sursa (job #719377)
Cod sursa(job #719377)
#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;
}
if(sol==-1)
sol=mod-1;
else
--sol;
int aux=sol;
return (aux/(factor[k]-1))%mod;
}
int main()
{
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int a, b, aux, u, 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*=(solve(i))%mod;
fout<<s;
return 0;
}