Pagini recente » Cod sursa (job #658768) | Cod sursa (job #2569766) | Cod sursa (job #951953) | Cod sursa (job #233053) | Cod sursa (job #1981479)
#include <fstream>
#include <cmath>
#define M 9901
using namespace std;
int pow(int base, int exp)
{
if (exp==0) return 1;
else
{
int x=pow(base, exp/2);
if (exp%2) return (x*x*base)%M;
else return (x*x)%M;
}
}
int main()
{
ifstream fin("sumdiv.in");
int a, b;
fin>>a>>b;
int fact[35]={0}, f=0;
int kit[35]={0}, k=0;
int lim=sqrt(a);
if (a%2==0)
{
fact[f++]=2;
while (a%2==0)
{
kit[k]+=b;
a/=2;
}
k++;
}
for (int i=3;i<=lim;i+=2)
{
if (a%i==0)
{
fact[f++]=i%M;
while (a%i==0)
{
kit[k]+=b;
a/=i;
}
k++;
}
}
if (a>1)
{
fact[f++]=a;
kit[k++]=b;
}
int s=1;
for (int i=0;i<f;i++)
{
s=(s*( (pow(fact[i], kit[i]+1)-1)/(fact[i]-1) ))%M;
}
ofstream fout("sumdiv.out");
fout<<s;
}