#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
long long int add(long long int a, long long int b) { return (a + b) % MOD; }
long long int mul(long long int a, long long int b) { return (a * b) % MOD; }
long long int pow(long long int a, long long int b) {
  long long int ans = 1;
  while (b) {
    if (b & 1) ans = mul(ans, a);
    a = mul(a, a);
    b >>= 1;
  }
  return ans;
}
long long int rev(long long int n) { return pow(n, MOD - 2); }
int d[100010];
long long int cal(long long int a, long long int m) {
  long long int temp = m / a;
  return mul(temp, rev(m - temp));
}
void pre(int n) {
  vector<int> prime;
  for (int i = 2; i <= n; i++) d[i] = -3;
  for (int i = 2; i <= n; i++) {
    if (d[i] == -3) {
      d[i] = -1;
      prime.push_back(i);
    }
    for (int j : prime) {
      if (i * j > n) break;
      if (i % j == 0) {
        d[i * j] = 0;
        break;
      } else
        d[i * j] = d[i] * d[j];
    }
  }
  return;
}
int main() {
  long long int m, ans = 1;
  scanf("%lld", &m);
  pre(m);
  for (int i = 2; i <= m; i++) {
    if (d[i] == -1)
      ans = add(ans, cal(i, m));
    else if (d[i] == 1)
      ans = add(ans, -cal(i, m));
    ans = add(ans, MOD);
  }
  printf("%lld\n", ans);
}
