Pagini recente » Cod sursa (job #784149) | Cod sursa (job #1605237) | Cod sursa (job #838422) | Cod sursa (job #2860382) | Cod sursa (job #2272477)
#include <cstdio>
#define NMax 1000000
using namespace std;
int t, j;
long long aux, s, nr, p[79000], k, e, m, n;
bool viz[NMax+5];
int main ()
{
for (int i=2; i<=NMax; i++){
if (viz[i]==0){
p[++k]=i;
for (int j=2; j*i<=NMax; j++)
viz[i*j]=1;
}
}
freopen("ssnd.in", "r", stdin);
freopen("ssnd.out", "w", stdout);
scanf("%d", &t);
for (int i=1; i<=t; i++){
scanf("%lld", &n);
j=1;
aux=n;
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;
}
printf("%lld %lld\n", nr, s);
}
return 0;
}