#include using namespace std; const int N=1000005,M=1000000007,inv2=500000004; int t,m,mu[1000005],f[1000005]; long long i,j,n; long long S(long long l,long long r) { long long x=(l+r)%M,y=(r-l+1)%M; return x*y%M*inv2%M; } int main(){ scanf("%d",&t); for(i=1;i<=1000000;++i) mu[i]=1; for(i=2;i<=1000000;++i) if(!f[i]) for(j=i;j<=1000000;j+=i) { if(j/i%i==0) mu[j]=0; mu[j]=-mu[j]; f[j]=1; } while(t--) { cin>>n; long long ans=0; int tot=0; for(long long x=1;x*x<=n;++x) if(mu[x]!=0) { long long lim=n/x/x,s=0; for(i=1;i<=lim;i=j+1) { j=lim/(lim/i); s=(s+S(i,j)*((lim/i)%M))%M; } ans=(ans+s%M*x*mu[x])%M; } cout<<(ans%M+M)%M<