using System.Collections;

internal class Program
{
    static long ProizvodCifara(long broj)
    {
        long resenje = 1;
        if (broj == 0
            || broj % 10 == 0
            || (((broj % 100 - (broj % 10)) / 10) == 0)
            )
            return 0;
        while (broj > 0)
        {
            resenje *= broj % 10;
            broj /= 10;
        }
        return resenje;
    }
    static long abakus(long ulaz)
    {
        HashSet<long> skup = new HashSet<long>();
        for (int i = 1; i <= ulaz; i++)
        {
            if (i % 10 == 0 && !skup.Contains(0L)) continue;
            skup.Add(ProizvodCifara(i));
        }
        return skup.Count;
    }
    static void Main(string[] args)
    {
        int Q = int.Parse(Console.ReadLine());
        while (Q > 0)
        {
            Console.WriteLine(abakus(long.Parse(Console.ReadLine())));
            Q--;
        }
    }
}