Pagini recente » Clasament simulare_oji_13_03_2023 | Profil ilincaS | Cod sursa (job #697984) | Cod sursa (job #389938) | Cod sursa (job #956892)
Cod sursa(job #956892)
#include <fstream>
using namespace std;
ifstream in ("ssnd.in");
ofstream out ("ssnd.out");
const int NR=1000006;
bool v[NR+1];
int p[500000],nr;
void ciur()
{
for(int i=2;i*i<=1000;i++)
{
if(v[i]==0)
for(int k=i*i;k<=NR;k+=i)
v[k]=1;
}
nr=1;
for(int i=2;i<=NR;i++)
{
if(v[i]==0)
{
p[nr]=i;
nr++;
}
}
}
int main()
{
long long n,x;
ciur();
in>>n;
for(int i=1;i<=n;i++)
{
in>>x;
int ndiv=1,sdiv=1;
for(int k=1;p[k]*p[k]<=x;k++)
{
if(x%p[k]==0)
{
int a=1,t=1;
while(x%p[k]==0)
{
a++;
x/=p[k];
t*=p[k];
}
ndiv*=a;
if(ndiv>9973)
ndiv%=9973;
sdiv*=((t*p[k]-1)/(p[k]-1));
if(sdiv>9973)
sdiv%=9973;
}
}
if(x>1){
ndiv*=2;
sdiv*=(x*x-1)/(x-1);
}
out<<ndiv%9973<<" "<<sdiv%9973<<"\n";
}
return 0;
}