Pagini recente » Cod sursa (job #2291169) | Cod sursa (job #130204) | Cod sursa (job #565757) | Cod sursa (job #2957360) | Cod sursa (job #1379292)
#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;
bool nprim[500100];
bool ok;
void eratos();
int main()
{
f>>T;
eratos();
for (i=0;i<T;++i)
{
f>>N;
rad=sqrt(N);
psuma=pnr=1;
put=0;
ok=false;
if (N%2==0)
{
ok=true;
while (N%2==0)
{
++put;
N/=2;
}
pnr*=(put+1);
psuma*=(pow(2,put+1)-1);
}
for (j=1;(j<<1)+1<=rad;++j)
{
//cout<<N<<' '<<j<<' '<<nprim[j]<<'\n';
if (!nprim[j] && N%((j<<1)+1)==0)
{
//cout<<j;
ok=true;
put=0;
while (N%((j<<1)+1)==0)
{
++put;
N/=((j<<1)+1);
}
pnr*=(put+1);
//cout<<psuma<<' ';
long long nr=(j<<1)+1;
long long exponent=put+1;
long double putere=pow(nr,exponent);
long long da=putere/(nr-1);
psuma*=da;
//cout<<psuma;
}
}
if (N>1)
{
pnr*=2;
long long nr=(j<<1)+1;
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])
{
for (j=(i*i<<1)+(i<<1);(j<<1)+1<=1000005;j+=(i<<1)+1)
nprim[j]=true;
}
}
}