#include <bits/stdc++.h>
using namespace std;
#define int long long int
const int max_n =1e5, mod = 1e9 + 7;
int pw(int a, int b) {
if (b == 0)
return 1;
int k = pw(a, b / 2);
if (b % 2 == 0)
return ((k * k) % mod);
return k * k % mod * a % mod;
}
int dp[max_n + 10], m, ans = 1;
int32_t main() {
cin >> m;
for (int i = 2; i <= m; i++){
int p = (m / i) * pw(m, mod - 2) % mod;
dp[i] = p * pw((1 - p + mod) % mod, mod - 2) % mod;
}
for (int i = m; i >= 2; i--)
for (int j = 2 * i; j <= m; j += i)
dp[i] = ((dp[i] - dp[j]) % mod + mod) % mod;
for (int i = 2; i <= m; i++)
ans = (ans + dp[i]) % mod;
cout << ans;
}
1641A - Great Sequence | 1537A - Arithmetic Array |
1370A - Maximum GCD | 149A - Business trip |
34A - Reconnaissance 2 | 59A - Word |
462B - Appleman and Card Game | 1560C - Infinity Table |
1605C - Dominant Character | 1399A - Remove Smallest |
208A - Dubstep | 1581A - CQXYM Count Permutations |
337A - Puzzles | 495A - Digital Counter |
796A - Buying A House | 67A - Partial Teacher |
116A - Tram | 1472B - Fair Division |
1281C - Cut and Paste | 141A - Amusing Joke |
112A - Petya and Strings | 677A - Vanya and Fence |
1621A - Stable Arrangement of Rooks | 472A - Design Tutorial Learn from Math |
1368A - C+= | 450A - Jzzhu and Children |
546A - Soldier and Bananas | 32B - Borze |
1651B - Prove Him Wrong | 381A - Sereja and Dima |