#line 1 "main.cpp" #include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; #line 2 "my-library\\library\\math\\quotient.hpp" #include #line 6 "my-library\\library\\math\\quotient.hpp" using namespace std; namespace asalib { namespace math { template constexpr vector> floor_quotient(T n) { vector> res; for (T i = 1; i <= n; ++i) { T v = n / i; res.push_back({ v, i, n / v }); i = n / v; } return res; } template constexpr vector> ceil_quotient(T n) { vector> res; for (T i = 1; i <= n; ++i) { T v = (n + i - 1) / i; if (i == n) { assert(v == 1); res.push_back({ v, i, i }); } else { assert(v > 1); T j = (n + v - 2) / (v - 1) - 1; res.push_back({ v, i, j }); i = j; } } return res; } } } #line 8 "main.cpp" int main() { ll n; cin >> n; auto v = asalib::math::floor_quotient(n); cout << v.size() << endl; return 0; }