#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N=4000000;
int n;
int mu[N+10],phi[N+10];
int summu1[N+10];
int sumphi1[N+10];
int vismu[N+10],visphi[N+10];
int prime[N+10],tot,vis[N+10];
unordered_map<int,int>sumphi2,summu2;
void main_init(){
mu[1]=phi[1]=1;
for(int i=2;i<=N;i++){
if(!vis[i]){
prime[++tot]=i;
mu[i]=-1;
phi[i]=i-1;
}
for(int j=1;j<=tot&&i*prime[j]<=N;j++){
int k=prime[j]*i;
vis[k]=1;
if(i%prime[j]){
mu[k]=-1*mu[i];
phi[k]=phi[i]*(prime[j]-1);
}
else{
mu[k]=0;
phi[k]=phi[i]*prime[j];
break;
}
}
}
for(int i=1;i<=N;i++){
summu1[i]=summu1[i-1]+mu[i];
sumphi1[i]=sumphi1[i-1]+phi[i];
}
}
void init(){
summu2.clear();
sumphi2.clear();
}
pair<int,int> get(int m){
if(m<=N)return {sumphi1[m],summu1[m]};
if(summu2.find(m)!=summu2.end())return {sumphi2[m],summu2[m]};
int ans1=1,ans2=m*(m+1)/2;
for(int l=2,r;l<=m;l=r+1){
r=m/(m/l);
auto t=get(m/l);
ans2-=(r-l+1)*t.first;
ans1-=(r-l+1)*t.second;
}
return {sumphi2[m]=ans2,summu2[m]=ans1};
}
void solve(){
cin>>n;
init();
auto t=get(n);
cout<<t.first<<" "<<t.second<<endl;
}
signed main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cout<<fixed<<setprecision(12);
int t=1;
main_init();
cin>>t;
while (t--)
solve();
}