Pagini recente » Cod sursa (job #1783912) | Cod sursa (job #617926) | Cod sursa (job #488249) | Cod sursa (job #2834976) | Cod sursa (job #2369856)
#include <fstream>
#define NMax 1000000
using namespace std;
ifstream f ("ssnd.in");
ofstream g ("ssnd.out");
int t, j;
long long aux, s, nr, p[79000], k, e, m, n;
bool v[NMax+5];
void ciur ()
{
for (int i=2; i<=NMax; i++)
{
if (v[i]==0)
{
p[++k]=i;
for (int j=2; j*i<=NMax; j++)
v[i*j]=1;
}
}
}
int main ()
{
ciur();
f >> t;
for (int i=1; i<=t; i++)
{
f >> n;
j=1;
s=1;
nr=1;
while (p[j]*p[j]<=n && j<=k)
{
e=0;
m=p[j];
while (n%p[j]==0)
{
n/=p[j];
e++;
m=m*p[j];
}
if (e>0)
{
s=(s*(m-1)/(p[j]-1))%9973;
nr=nr*(e+1);
}
j++;
}
if (n>1)
{
nr*=2;
s=(s*(n*n-1)/(n-1))%9973;
}
g << nr << " " << s << "\n";
}
return 0;
}