#include #include using namespace std; int main() { long long N, K; if (!(cin >> N >> K)) return 0; if (N == 1) { cout << "Bob" << endl; return 0; } // Đếm tổng số thừa số nguyên tố (tính cả số mũ) // Ví dụ: 12 = 2^2 * 3^1 => count = 3 long long total_prime_factors = 0; long long tempN = N; for (long long i = 2; i * i <= tempN; ++i) { while (tempN % i == 0) { total_prime_factors++; tempN /= i; } } if (tempN > 1) total_prime_factors++; // Trong nhiều bài toán Divisor Game, Alice thắng nếu tổng số mũ là lẻ // bất kể K (trừ khi K quá nhỏ không chọn được số nguyên tố nào) // Kiểm tra xem có tồn tại ít nhất một ước <= K không bool can_move = false; for (long long i = 2; i * i <= N; ++i) { if (N % i == 0) { if (i <= K) { can_move = true; break; } } } if (N > 1 && N <= K) can_move = true; if (!can_move) { cout << "Bob" << endl; } else { // Nếu có thể đi, kết quả thường phụ thuộc vào tổng số thừa số nguyên tố if (total_prime_factors % 2 != 0) cout << "Alice" << endl; else cout << "Bob" << endl; } return 0; }