Pagini recente » Mall | Profil Al3ks1002 | Statistici Stanciu Rony (roon) | DeehoroEjkoli | Cod sursa (job #418080)
Cod sursa(job #418080)
#include <cstdio>
#include <cmath>
#define infile "ssnd.in"
#define outfile "ssnd.out"
#define MaxN 1000000000
#define MaxM 1000
bool a[MaxN];
long long N,X,D,S,K;
long long p[MaxM],r[MaxM],v[MaxM];
int T;
void numar()
{
int i;
D=1;
for(i=1;i<=K;i++)
D*=(r[i]+1);
}
void suma()
{
int i;
double s=1;
for(i=1;i<=K;i++)
s*=(v[i]-1)/(p[i]-1);
S=(long long)s;
}
void solve()
{
long long i,j,m=(long long)sqrt(N),n;
X=N; K=0;
for(i=2;i<=m;i++)
if(N%i==0 && a[i]==false)
{
p[++K]=i; r[K]=0;
v[K]=i;
while(N%i==0)
N/=i, r[K]++, v[K]*=i;
n=X/i;
for(j=2;j<=n;j++)
a[j*i]=true;
}
if(K>0)
{
numar();
suma();
}
else
{
D=2;
S=1+X;
}
}
int main()
{
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
scanf("%d",&T);
for(;T;T--)
{
scanf("%lld",&N);
solve();
printf("%lld ",D);
printf("%lld\n",S);
}
fclose(stdin);
fclose(stdout);
return 0;
}