/* -*- coding: utf-8 -*- * * 237.cc: No.237 作図可能性 - 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 FPN = 5; /* typedef */ typedef long long ll; /* global variables */ int fps[FPN]; /* subroutines */ /* main */ int main() { for (int i = 0; i < FPN; i++) { fps[i] = (1 << (1 << i)) + 1; //printf("%d: %d\n", i, fps[i]); } ll n; cin >> n; int cnt = 0; for (int bits = 0; bits < (1 << FPN); bits++) { ll p = 1; for (int i = 0, bi = 1; i < FPN; i++, bi <<= 1) if (bits & bi) p *= fps[i]; if (n >= p) { int m = n / p; int k = 0; while ((1 << k) <= m) k++; cnt += k; } } printf("%d\n", cnt - 2); return 0; }