#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(i,a,n) for(int i=(a); i<(int)(n); i++) #define rep(i,n) REP(i,0,n) #define ALLOF(c) (c),begin(), (c),end() typedef long long ll; int main() { int n; int count = 0 - 2;//2角形??? int felma[5] = {3,5,17,257,65537}; int hoge[5] ={1,1,1,1,1}; vector ababa; for (int i = 0; i < 5; i++) { do { int m = 1; for (int j = 0; j < 5; j++) { if (hoge[j] == 1) { m *= felma[j]; } } ababa.push_back(m); }while (next_permutation(hoge, hoge+5)); for (int j = 0; j < 5; j++) { hoge[j] = i < j ? 1:0; } } ababa[0] = 1000000005; // -1? 無効化 sort(ababa.begin(),ababa.end()); ll bin = 1; ll tmp = 1; cin >> n; for (int i = 0; bin < n ; i++) { tmp = bin; if (tmp > n) { break; } #ifdef _DEBUG cout << tmp << endl;; #endif _DEBUG count++; for (int j = 0; j < ababa.size(); j++) { tmp = bin * ababa[j]; if (tmp > n) { break; } #ifdef _DEBUG cout << tmp << endl; #endif _DEBUG count++; } bin *= 2; } cout << count << endl; return 0; }