#include <bits/stdc++.h>
using namespace std;
int q;
bool vis[1111111];
int dfs(int n, int d) {
  if (n < 10) return d;
  if (vis[n]) return -1;
  vis[n] = true;
  string s = to_string(n);
  int res = 0;
  for (int i = (int)(0); i < (int)(s.length() - 1); i++) {
    res = max(res, stoi(s.substr(0, i + 1)) *
                       stoi(s.substr(i + 1, s.length() - i - 1)));
  }
  return dfs(res, d + 1);
}
int main() {
  cin.sync_with_stdio(false);
  cin >> q;
  for (int i = (int)(0); i < (int)(q); i++) {
    int n;
    cin >> n;
    memset(vis, 0, sizeof(vis));
    cout << dfs(n, 0) << endl;
  }
  return 0;
}
