Pagini recente » Cod sursa (job #2158971) | Cod sursa (job #2704436) | Cod sursa (job #94650) | Cod sursa (job #288083) | Cod sursa (job #1154435)
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
unsigned long long n,m,i,t,j,k,l,o,sdf,nrf,nrprim[800000];
bool a[10000002];
void ciur()
{
unsigned long long i,j,nmax;
nmax=sqrt(n)+2;
for(i=2;i<=nmax;i++)
{
if(a[i]==0)
{
for(j=i+i;j<=nmax;j+=i) a[j]=1;
nrprim[0]++;
nrprim[nrprim[0]]=i;
}
}
}
void desc(unsigned long long k,unsigned long long put)
{
unsigned long long i,j,nrp,nrd;
nrf=sdf=1;
for(i=1;i<=nrprim[0];i++)
{
if(k%nrprim[i]==0)
{
nrp=nrprim[i];
nrd=0;
while(k%nrp==0)
{
k=k/nrp;
nrd++;
}
nrd*=put;
nrf*=(nrd+1);
sdf*=((pow(nrp,nrd+1)-1)/(nrp-1));
sdf%=9901;
}
}
if(k>1)
{
nrf*=2;
sdf=(1LL*sdf*(k+1)%9901);
}
g<<sdf%9901;
}
int main()
{
f>>n>>m;
ciur();
desc(n,m);
return 0;
}