#include #define ALL(obj) begin(obj), end(obj) using namespace std; using ll = long long; using ull = unsigned long long; // prime_factor:素因数分解する関数 template map prime_factor(T n) { map ret; for (T i = 2; i * i <= n; i++) { T tmp = 0; while (n % i == 0) { tmp++; n /= i; } ret[i] = tmp; } if (n != 1) ret[n] = 1; return ret; } ll N; int main() { cin >> N; map p_fac = prime_factor(N); // first:素数p second: pで何回割り切れるか vector nim; for (auto p : p_fac) { int num = p.second; nim.push_back(num); } int xor_sum = 0; for (auto t : nim) { xor_sum ^= t; } if (xor_sum == 0) { // 後手必勝 cout << "Bob" << endl; } else { // 先手必勝 cout << "Alice" << endl; } return 0; }