#include <bits/stdc++.h>
using namespace std;
int main() {
  int t;
  cin >> t;
  while (t--) {
    long long n;
    cin >> n;
    map<int, int> s;
    vector<long long> p;
    long long nn = n;
    for (long long i = 2; i * i <= nn; ++i) {
      if (nn % i == 0) p.push_back(i);
      while (nn % i == 0) {
        s[i]++;
        nn /= i;
      }
    }
    if (nn > 1) {
      s[nn] = 1;
      p.push_back(nn);
    }
    bool flag = p.size() == 2;
    for (int e : p) flag &= s[e] == 1;
    set<long long> f;
    for (long long i = 2; i * i <= n; ++i) {
      if (n % i == 0) {
        f.insert(i);
        f.insert(n / i);
      }
    }
    f.insert(n);
    map<long long, bool> mark;
    mark[p.front() * p.back()] = 1;
    for (int i = 0; i < p.size(); ++i) {
      mark[p[i] * p[(i + 1) % (int)p.size()]] = 1;
      for (long long e : f) {
        if (e % p[i] == 0 && mark[e] ^ 1) {
          cout << e << ' ';
          mark[e] = 1;
        }
      }
      if (p.size() > 2) cout << p[i] * p[(i + 1) % (int)p.size()] << ' ';
    }
    if (p.size() <= 2) cout << p.front() * p.back() << ' ';
    cout << '\n';
    if (flag) {
      cout << 1 << '\n';
    } else {
      cout << 0 << '\n';
    }
  }
}
