#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll b[55]={0};
void sieve()
{
for (ll i = 2; i * i <= 50; ++i) {
if (b[i] == 0) {
for (ll j = i * i; j <= 50; j += i) {
if (b[j] == 0) {
b[j] = i;
}
}
}
}
for (ll i = 2; i <= 50; ++i) {
if (b[i] == 0) {
b[i] = i;
}
}
}
int main()
{
//cout << "Hello world!" << endl;
ll t;
sieve();
cin>>t;
while(t--)
{
ll prime[15]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};
ll n;
cin>>n;
ll a[n+3];
for(ll i=0;i<n;i++)
{
cin>>a[i];
}
ll gd=a[0];
for(ll i=0;i<n;i++)
{
gd=__gcd(gd,a[i]);
}
//cout<<gd<<endl;
if(gd==1 || n==1)
{
cout<<0<<endl;
for(ll i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
continue;
}
map<ll,ll>mp;
for(ll i=0;i<n;i++)
{
ll x=a[i];
while(x!=1)
{
mp[b[x]]++;
x=x/b[x];
}
}
ll val;
for(ll i=0;i<15;i++)
{
if(mp[prime[i]]==0)
{
val=prime[i];
break;
}
}
cout<<1<<endl;
a[n-1]=val;
for(ll i=0;i<n;i++) cout<<a[i]<<" ";
cout<<endl;
mp.clear();
//for(ll i=0;i<cnt;i++) cout<<p[i].first<<" "<<p[i].second<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKbGwgYls1NV09ezB9Owp2b2lkIHNpZXZlKCkKICAgewoKICAgIGZvciAobGwgaSA9IDI7IGkgKiBpIDw9IDUwOyArK2kpIHsKICAgIGlmIChiW2ldID09IDApIHsKICAgICAgICBmb3IgKGxsIGogPSBpICogaTsgaiA8PSA1MDsgaiArPSBpKSB7CiAgICAgICAgICAgIGlmIChiW2pdID09IDApIHsKICAgICAgICAgICAgICAgIGJbal0gPSBpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICB9CmZvciAobGwgaSA9IDI7IGkgPD0gNTA7ICsraSkgewogICAgaWYgKGJbaV0gPT0gMCkgewogICAgICAgIGJbaV0gPSBpOwoKICAgIH0KfQoKCn0KaW50IG1haW4oKQp7CiAgICAvL2NvdXQgPDwgIkhlbGxvIHdvcmxkISIgPDwgZW5kbDsKICAgIGxsIHQ7CiAgICBzaWV2ZSgpOwogICAgY2luPj50OwogICAgd2hpbGUodC0tKQogICAgewoKICAgICAgICBsbCBwcmltZVsxNV09ezIsMyw1LDcsMTEsMTMsMTcsMTksMjMsMjksMzEsMzcsNDEsNDMsNDd9OwogICAgICAgIGxsIG47CiAgICAgICAgY2luPj5uOwogICAgICAgIGxsIGFbbiszXTsKICAgICAgICBmb3IobGwgaT0wO2k8bjtpKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+PmFbaV07CiAgICAgICAgIH0KICAgICAgICBsbCBnZD1hWzBdOwogICAgICAgIGZvcihsbCBpPTA7aTxuO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGdkPV9fZ2NkKGdkLGFbaV0pOwogICAgICAgIH0KICAgICAgICAvL2NvdXQ8PGdkPDxlbmRsOwogICAgICAgIGlmKGdkPT0xIHx8IG49PTEpCiAgICAgICAgewogICAgICAgICAgICBjb3V0PDwwPDxlbmRsOwogICAgICAgICAgICBmb3IobGwgaT0wO2k8bjtpKyspCiAgICAgICAgICAgICAgICBjb3V0PDxhW2ldPDwiICI7CgogICAgICAgICAgICBjb3V0PDxlbmRsOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIG1hcDxsbCxsbD5tcDsKICAgICAgICBmb3IobGwgaT0wO2k8bjtpKyspCiAgICAgICAgewogICAgICAgICAgICBsbCB4PWFbaV07CiAgICAgICAgICAgIHdoaWxlKHghPTEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG1wW2JbeF1dKys7CiAgICAgICAgICAgICAgICB4PXgvYlt4XTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsbCB2YWw7CiAgICAgICAgZm9yKGxsIGk9MDtpPDE1O2krKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKG1wW3ByaW1lW2ldXT09MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZhbD1wcmltZVtpXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvdXQ8PDE8PGVuZGw7CiAgICAgICAgYVtuLTFdPXZhbDsKICAgICAgICBmb3IobGwgaT0wO2k8bjtpKyspIGNvdXQ8PGFbaV08PCIgIjsKICAgICAgICBjb3V0PDxlbmRsOwogICAgICAgIG1wLmNsZWFyKCk7CgogICAgICAgIC8vZm9yKGxsIGk9MDtpPGNudDtpKyspIGNvdXQ8PHBbaV0uZmlyc3Q8PCIgIjw8cFtpXS5zZWNvbmQ8PGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=