#include #include using namespace std; /** * Bài toán: No.3508 Divisor Game * Logic: Đếm tổng số lượng thừa số nguyên tố của N. * Mỗi lượt chọn d tương đương với việc giảm tổng số mũ này đi một lượng nhất định. */ int main() { long long N, K; cin >> N >> K; if (N == 1) { cout << "Bob" << endl; return 0; } // Nếu Alice có thể kết thúc ngay lập tức if (N <= K) { cout << "Alice" << endl; return 0; } long long total_exponents = 0; long long tempN = N; // Phân tích thừa số nguyên tố của N for (long long i = 2; i * i <= tempN; ++i) { while (tempN % i == 0) { // Chỉ xét các thừa số nguyên tố <= K if (i <= K) { total_exponents++; } tempN /= i; } } // Nếu phần còn lại là một số nguyên tố > 1 if (tempN > 1 && tempN <= K) { total_exponents++; } // Kết quả dựa trên tính chẵn lẻ của tổng số mũ if (total_exponents % 2 != 0) { cout << "Alice" << endl; } else { cout << "Bob" << endl; } return 0; }