Pagini recente » Cod sursa (job #2762973) | Cod sursa (job #2543738) | Cod sursa (job #2514588) | Cod sursa (job #1703994) | Cod sursa (job #1379344)
#include<fstream>
#include<iostream>
#include<cmath>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long T,N,i,j,rad,psuma,pnr,put;
long long nrprime[500100];
bool nprim[500100];
void eratos();
int main()
{
f>>T;
eratos();
for (i=0;i<T;++i)
{
f>>N;
rad=sqrt(N);
psuma=pnr=1;
put=0;
if (N%2==0)
{
while (N%2==0)
{
++put;
N/=2;
}
pnr*=(put+1);
psuma*=(pow(2,put+1)-1);
}
for (j=1;j<=nrprime[0] && nrprime[j]<=rad;++j)
{
if (N%nrprime[j]==0)
{
//cout<<j;
put=0;
while (N%nrprime[j]==0)
{
++put;
N/=nrprime[j];
}
pnr*=(put+1);
long long nr=nrprime[j];
long long exponent=put+1;
long double putere=pow(nr,exponent);
long long da=putere/(nr-1);
psuma*=da;
}
}
if (N>1)
{
pnr*=2;
long long nr=N;
long long exponent=2;
long double putere=pow(nr,exponent);
long long da=putere/(nr-1);
psuma*=da;
}
g<<pnr<<' '<<psuma%9973<<'\n';
}
f.close();g.close();
return 0;
}
void eratos()
{
for (i=1;(i<<1)+1<=1000005;++i)
{
if (!nprim[i])
{
nrprime[++nrprime[0]]=(i<<1)+1;
for (j=(i*i<<1)+(i<<1);(j<<1)+1<=1000005;j+=(i<<1)+1)
nprim[j]=true;
}
}
}