/* -*- coding: utf-8 -*- * * 1581.cc: No.1581 Multiple Sequence - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_M = 100000; const int MOD = 1000000007; /* typedef */ /* global variables */ int dp[MAX_M + 1]; /* subroutines */ inline void addmod(int &a, int b) { a = (a + b) % MOD; } /* main */ int main() { int m; scanf("%d", &m); dp[0] = dp[1] = 1; for (int i = 2; i <= m; i++) { for (int p = 1; p * p <= i; p++) if (i % p == 0) { int q = i / p; addmod(dp[i], dp[p - 1]); if (p != q) addmod(dp[i], dp[q - 1]); } } printf("%d\n", dp[m]); return 0; }