#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void integerFactorization(int n, vector& base, vector& expo) { base.clear(); expo.clear(); int a = 2; while(a * a <= n){ int b = 0; while(n % a == 0){ ++ b; n /= a; } if(b > 0){ base.push_back(a); expo.push_back(b); } ++ a; } if(n > 1){ base.push_back(n); expo.push_back(1); } } int main() { vector grundy(15, 0); for(int i=1; i<15; ++i){ set s; for(int j=1; j<=2; ++j) s.insert(grundy[max(0, i-j)]); int k = 0; for(auto it=s.begin(); it!=s.end(); ++it){ if(k != *it) break; ++ k; } grundy[i] = k; } int n; cin >> n; int ret = 0; for(int i=0; i> m; vector base, expo; integerFactorization(m, base, expo); for(unsigned i=0; i