1 #include<bits/stdc++.h>
2 #include<tr1/unordered_map>
3 using namespace std;
4 #define ll long long
5 #define N 5000005
6 int t,n,mu[N],vis[N],p[N];
7 ll cp[N];
8 tr1::unordered_map<int,ll>m1;
9 tr1::unordered_map<int,int>m2;
10 ll djs_cp(int n){
11 if (n<=N-5)return cp[n];
12 if (m1[n])return m1[n];
13 ll ans=(n+1LL)*n/2;
14 for(int i=2,j;;i=j+1){
15 j=n/(n/i);
16 ans-=djs_cp(n/i)*(j-i+1);
17 if (j==n)return m1[n]=ans;
18 }
19 }
20 int djs_mu(int n){
21 if (n<=N-5)return mu[n];
22 if (m2[n])return m2[n];
23 int ans=1;
24 for(int i=2,j;;i=j+1){
25 j=n/(n/i);
26 ans-=djs_mu(n/i)*(j-i+1);
27 if (j==n)return m2[n]=ans;
28 }
29 }
30 int main(){
31 mu[1]=cp[1]=1;
32 for(int i=2;i<=N-5;i++){
33 if (!vis[i])cp[i]=i+(mu[p[++p[0]]=i]=-1);
34 for(int j=1;(j<=p[0])&&(i*p[j]<=N-5);j++){
35 vis[i*p[j]]=1;
36 if (i%p[j]==0){
37 cp[i*p[j]]=cp[i]*p[j];
38 break;
39 }
40 mu[i*p[j]]=-mu[i];
41 cp[i*p[j]]=cp[i]*(p[j]-1);
42 }
43 }
44 for(int i=2;i<=N-5;i++){
45 mu[i]+=mu[i-1];
46 cp[i]+=cp[i-1];
47 }
48 scanf("%d",&t);
49 while (t--){
50 scanf("%d",&n);
51 printf("%lld %d\n",djs_cp(n),djs_mu(n));
52 }
53 }