using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; public class Program { public static void Main(string[] args) { Solve(Console.In, Console.Out); } public static void Solve(TextReader input, TextWriter output) { var primes = Primes(100000).ToArray(); int g = Convert.ToInt32(input.ReadLine()); for (int a0 = 0; a0 < g; a0++) { int n = Convert.ToInt32(input.ReadLine()); var result = Math.Abs(Array.BinarySearch(primes, n))%2 == 0; Console.WriteLine(result ? "Alice" : "Bob"); } } public static IEnumerable Primes(int bound) { if (bound < 2) yield break; yield return 2; BitArray composite = new BitArray((bound - 1)/2); int limit = ((int) (Math.Sqrt(bound)) - 1)/2; for (int i = 0; i < limit; i++) { if (composite[i]) continue; int prime = 2*i + 3; yield return prime; for (int j = (prime*prime - 2) >> 1; j < composite.Length; j += prime) { composite[j] = true; } } for (int i = limit; i < composite.Length; i++) { if (!composite[i]) yield return 2*i + 3; } } }