RT,全WA了
#include<bits/stdc++.h>
#define MAXN 1000000002
#define rg register
#define int long long
using namespace std;
inline int read()
{
int f=1,w=0;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9')w=w*10+ch-'0',ch=getchar();
return f*w;
}
int T,n,ans;
const int mod=1e9+7;
inline int poww(int x,int k)
{
int base=x,res=1;
for(;k;(base*=base)%=mod,k>>=1)
if(k&1)(res*=base)%=mod;
return res%mod;
}
inline int phi(int x)
{
int res=x;
for(rg int i=2;i*i<=x;i++)
{
if(x%i)continue;
res-=res/i;
while(!x%i)x/=i;
}
if(x!=1)res-=res/x;
return res;
}
signed main()
{
T=read();
while(T--)
{
n=read(),ans=0;
for(rg int i=1;i*i<=n;i++)
{
if(n%i)continue;
int x=phi(i),y=poww(n,n/i);
(ans+=(x*y)%mod)%=mod;
if(i*i!=n)
{
int xx=phi(n/i),yy=poww(n,i);
(ans+=(xx*yy)%mod)%=mod;
}
}
printf("%d\n",ans*poww(n,mod-2)%mod);
}
return 0;
}