#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>

using namespace std;

int main()
{
    int t;
    cin >> t;

    while(t--)
    {
        int n;
        cin >> n;
        string s = to_string(n);
        int broj_cifara = s.size();
        long long najveci = 1;

        for(char c : s) najveci *= c - '0';

        najveci = max(najveci, (long long)pow(9, broj_cifara - 1));
        int odg = 0;

        for(int i = 0; i <= najveci; i++)
        {
            int t = i;
            string broj = "";
            bool moze = true;

            if(i == 0 && n < 10) continue;

            while(t > 1)
            {
                int prethodni = t;

                for(int j = 9; j >= 2; j--)
                {
                    if(t % j == 0)
                    {
                        cout << t << " " << j << endl;
                        t /= j;
                        broj += j + '0';

                        break;
                    }
                }

                if(prethodni == t)
                {
                    moze = false;

                    break;
                }
            }

            sort(broj.begin(), broj.end());

            if((broj <= s || broj.size() < s.size()) && moze)
            {
                odg++;
                cout << i << " moze" << endl;
            } else cout << i << " ne moze " << broj << " " << s << " " << (broj <= s) << endl;
        }

        cout << odg << endl;
    }

    return 0;
}