#include using namespace std; const int M=1000000007; typedef long long ll; const int maxn=1e6+3; ll n; int mu[maxn]; void add(ll &x,ll y){x+=y; if (x>=M) x-=M;} void sub(ll &x,ll y){x-=y; if (x<0) x+=M;} ll s2(ll x){ x%=M; return 1ll*x*(x+1)/2%M; } ll calc(ll n){ ll m=(int)sqrt(n); ll ans=0; for (int i=1;i<=m;i++){ add(ans,n/i%M*i%M); sub(ans,1ll*i*(i-1)%M); add(ans,s2(n/i)); sub(ans,s2(i)); } return ans; } void solve(){ cin >> n; ll m=(int)sqrt(n); ll ans=0; for (int i=1;i<=m;i++) { if (mu[i]==1) add(ans,calc(n/i/i)*i%M); else if (mu[i]==-1) sub(ans,calc(n/i/i)*i%M); } cout << ans << endl; } int main(){ mu[1]=1; for (int i=1;i> _; while (_--) solve(); }