def Inverse_Proportion(N): retu=[] for i in range(1,N+1): if i==N or N//i>N//(i+1): retu.append(((i,i+1),N//i)) else: for j in range(N//i,0,-1): retu.append(((N//(j+1)+1,N//j+1),j)) break return retu N=int(input()) mod=10**9+7 def solve(N): return sum(n*(r-l) for (l,r),n in Inverse_Proportion(N))%mod IP=Inverse_Proportion(N) ans=solve(N)*(N+1)-sum(n*n*(r-l) for (l,r),n in IP)-sum(solve(n)*(r-l) for (l,r),n in IP) ans-=N*(N-1)-(solve(N)-N)*2 ans%=mod print(ans)