#include #define ll long long #define ull unsigned ll #define uint unsigned #define pii pair #define pll pair #define IT iterator #define PB push_back #define fi first #define se second #define For(i,j,k) for (int i=(int)(j);i<=(int)(k);i++) #define Rep(i,j,k) for (int i=(int)(j);i>=(int)(k);i--) #define CLR(a,v) memset(a,v,sizeof(a)); #define CPY(a,b) memcpy(a,b,sizeof(a)); #define debug puts("wzpakking") #define y1 ysghysgsygsh using namespace std; const int mo=1000000007; const int N=1000005; int mu[N]; void init(){ mu[1]=1; For(i,1,N-1) For(j,2,(N-1)/i) mu[i*j]-=mu[i]; } int S(ll x){ x%=mo; return 1ll*x*(x+1)/2%mo; } void solve(){ ll n; scanf("%lld",&n); int ans=(n-1+S(n))%mo; for (int i=1;1ll*i*i<=n;i++) if (mu[i]) for (int j=i;1ll*j*j<=n;j+=i){ if (j==1) continue; ans=(ans+(mu[i]*(n/j/i-(j-1)/i)%mo+mo)*j)%mo; ans=(ans+1ll*(mu[i]*(S(n/j/i)-S((j-1)/i))%mo+mo)*i)%mo; } cout<