#include<iostream>#include<cstring>#include<cstdio>using namespace std;typedef long long LOL;const int mod = 100000007;int n;int find(int x){int l=x,r=n;while(l<r){int m=(l+r+1)>>1;if((n-1)/m==(n-1)/x){l=m;}else{r=m-1;}}return l;}LOL solve(int x,int y){return ((LOL)(x+y)*(LOL)(y-x+1)/2)%mod;}int main(void){while(cin>>n){int x=1;LOL ans=0;while(x<=n-1){int y=find(x);int tmp=(n-1)/x;ans+=(LOL)(y-x+1)*(LOL)tmp*(LOL)n-(LOL)solve(1,tmp)*solve(x,y);ans%=mod;x=y+1;}cout<<(ans%mod+mod)%mod<<endl;}return 0;}


