#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    int ans[n];
    int used[11] = {
        0,
    };
    for (int i = 0; i < n; i++) {
      int a;
      cin >> a;
      if (a % 2 == 0) {
        ans[i] = 0;
        used[0] = 1;
      } else if (a % 3 == 0) {
        ans[i] = 1;
        used[1] = 1;
      } else if (a % 5 == 0) {
        ans[i] = 2;
        used[2] = 1;
      } else if (a % 7 == 0) {
        ans[i] = 3;
        used[3] = 1;
      } else if (a % 11 == 0) {
        ans[i] = 4;
        used[4] = 1;
      } else if (a % 13 == 0) {
        ans[i] = 5;
        used[5] = 1;
      } else if (a % 17 == 0) {
        ans[i] = 6;
        used[6] = 1;
      } else if (a % 19 == 0) {
        ans[i] = 7;
        used[7] = 1;
      } else if (a % 23 == 0) {
        ans[i] = 8;
        used[8] = 1;
      } else if (a % 29 == 0) {
        ans[i] = 9;
        used[9] = 1;
      } else if (a % 31 == 0) {
        ans[i] = 10;
        used[10] = 1;
      }
    }
    int m = 0;
    for (int i = 0; i < 11; i++) {
      m += used[i];
    }
    for (int i = 0; i < 10; i++) {
      used[i + 1] += used[i];
    }
    cout << m << endl;
    for (int i = 0; i < n; i++) {
      cout << used[ans[i]] << " ";
    }
    cout << endl;
  }
  return 0;
}
