## https://yukicoder.me/problems/no/1260 import math MOD = 10 ** 9 + 7 def main(): N = int(input()) sqrt_n = int(math.sqrt(N)) answer = 0 for i in range(2, sqrt_n + 1): n = N ans =0 while n > 0: ans += n % i n //= i ans %= MOD answer += ans answer %= MOD for q in range(1, sqrt_n + 1): # (lower, upper]で考える upper = N // q if upper <= sqrt_n: continue lower = N // (q + 1) lower = max(sqrt_n, lower) if lower >= upper: continue count = upper - lower ans1 = (q * count) % MOD b = N - upper * q ans2 = ((b - q) * count) %MOD ans3 = (count * (count + 1)) % MOD ans3 *= pow(2, MOD - 2, MOD) ans3 %= MOD ans3 *= q ans3 %= MOD ans = (ans1 + ans2) % MOD ans += ans3 ans %= MOD answer += ans answer %= MOD print(answer) if __name__ == "__main__": main()