#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10, mod = 1e9 + 7;
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    vector<pair<int, int> > pr;
    vector<int> div;
    int m = n;
    for (int i = 2; i * i <= m; i++) {
      int cnt = 0;
      while (m % i == 0) {
        m /= i;
        cnt++;
      }
      if (cnt) {
        pr.push_back({i, cnt});
      }
    }
    if (m > 1) {
      pr.push_back({m, 1});
    }
    div.push_back(n);
    for (int i = 2; i * i <= n; i++) {
      if (n % i == 0) {
        div.push_back(i);
        if (n / i != i) div.push_back(n / i);
      }
    }
    if (pr.size() == 1) {
      for (int x : div) cout << x << " ";
      cout << "\n0\n";
    } else if (pr.size() == 2) {
      if (pr[0].second == 1 && pr[1].second == 1) {
        for (int x : div) cout << x << " ";
        cout << "\n1\n";
      } else {
        if (pr[1].second == 1) swap(pr[0], pr[1]);
        int d1 = pr[0].first * pr[1].first,
            d2 = pr[0].first * pr[1].first * pr[1].first;
        cout << d1 << " ";
        for (int x : div) {
          if (x % pr[0].first == 0 && x != d1 && x != d2) {
            cout << x << " ";
          }
        }
        cout << d2 << " ";
        for (int x : div) {
          if (x % pr[0].first != 0 && x != d1 && x != d2 &&
              x % pr[1].first == 0) {
            cout << x << " ";
          }
        }
        cout << "\n0\n";
      }
    } else {
      for (int i = 0; i < pr.size(); i++) {
        int d1;
        if (i == 0)
          d1 = pr[i].first * pr.back().first;
        else
          d1 = pr[i].first * pr[i - 1].first;
        int d2;
        if (i == pr.size() - 1)
          d2 = pr[i].first * pr[0].first;
        else
          d2 = pr[i].first * pr[i + 1].first;
        if (i == 0) cout << d1 << " ";
        vector<int> hlp;
        for (int x : div) {
          if (x != d1 && x != d2) {
            if (x % pr[i].first == 0)
              cout << x << " ";
            else
              hlp.push_back(x);
          }
        }
        div.swap(hlp);
        if (i != pr.size() - 1) cout << d2 << " ";
      }
      cout << "\n0\n";
    }
  }
  return 0;
}
