#include #include #include using namespace std; struct Stones { int label; int count; Stones(int l) : label(l) , count(0) { } Stones(int l, int c) : label(l) , count(c) { } }; int main() { int n; cin >> n; vector stones; int sqrtn = (int)sqrt(n); for (int i = 2; i <= sqrtn; ++i) { Stones s(i); while (n % i == 0) { ++s.count; n /= i; } if (s.count > 0) { stones.push_back(s); } } if (stones.size() == 0) { stones.push_back(Stones(n, 1)); } int nim = 0; int size = stones.size(); for (int i = 0; i < size; ++i) { nim ^= stones[i].count; } if (nim == 0) { cout << "Bob" << endl; } else { cout << "Alice" << endl; } return 0; }