Pagini recente » Cod sursa (job #948466) | Cod sursa (job #1740569) | Rating Szucs Denis (Denis3568) | Cod sursa (job #1547751) | Cod sursa (job #2302214)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long t,i,j,n,m,s,d,p;
int prim[900000];
bool ciur[1000005];
int main()
{
for (i=3;i<=1000005;i+=2)
for (j=i*i;j<=1000005;j+=i<<2)
{
ciur[j]=1;
}
prim[1]=2;
long long poz=1;
for (i=3;i<=1000005;i+=2)
if (!ciur[i])
{
poz++;
prim[poz]=i;
}
fin>>t;
long long x;
for (;t;t--)
{
fin>>x;
n=1,s=1,d=1,p=0,j=1;
while (j<=poz && x>1)
{
p=0; n=1;
if (prim[j]*prim[j]>x)
{d*=2; s=(s*(x*x-1)/(x-1))%9973; x=1;}
if ((x%prim[j]==0))
{
while (x%prim[j]==0)
{
x/=prim[j];
p++;
}
for (i=1;i<=p;i++)
n*=prim[j];
d*=p+1;
s=(s*(n*prim[j]-1)/(prim[j]-1))%9973;
}
j++;
}
fout<<d<<" "<<s<<"\n";
}
return 0;
}