#include<stdio.h>
int pa[5000001];
void inil(){
int i,j;
for(i=2;i<=5000000;i++){
if(pa[i]==0){
pa[i]=i;
for(j=i;j<=5000000/i;j++){
if(pa[i*j]==0){
pa[i*j]=i;
}
}
}
}
j=1;
int cnt=0;
for(i=5000000;i>=2;i--){
if(pa[i]!=i&&pa[i]>j){
j=pa[i];
//printf("%d -> %d\n",i,j);
}
if(pa[i]!=i&&pa[i]>500)cnt++;
}
printf("%d\n",cnt);
}
int main(){
inil();
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
while(n>1){
int k=pa[n];
n/=k;
printf("%d ",k);
}
printf("\n");
}
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IHBhWzUwMDAwMDFdOwp2b2lkIGluaWwoKXsKICAgIGludCBpLGo7CiAgICBmb3IoaT0yO2k8PTUwMDAwMDA7aSsrKXsKICAgICAgICBpZihwYVtpXT09MCl7CiAgICAgICAgICAgIHBhW2ldPWk7CiAgICAgICAgICAgIGZvcihqPWk7ajw9NTAwMDAwMC9pO2orKyl7CiAgICAgICAgICAgICAgICBpZihwYVtpKmpdPT0wKXsKICAgICAgICAgICAgICAgICAgICBwYVtpKmpdPWk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cmo9MTsKaW50IGNudD0wOwpmb3IoaT01MDAwMDAwO2k+PTI7aS0tKXsKaWYocGFbaV0hPWkmJnBhW2ldPmopewpqPXBhW2ldOwovL3ByaW50ZigiJWQgLT4gJWRcbiIsaSxqKTsKfQppZihwYVtpXSE9aSYmcGFbaV0+NTAwKWNudCsrOwp9CnByaW50ZigiJWRcbiIsY250KTsKfQppbnQgbWFpbigpewogICAgaW5pbCgpOwogICAgaW50IHQ7CiAgICBzY2FuZigiJWQiLCZ0KTsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgaW50IG47CiAgICAgICAgc2NhbmYoIiVkIiwmbik7CiAgICAgICAgd2hpbGUobj4xKXsKICAgICAgICAgICAgaW50IGs9cGFbbl07CiAgICAgICAgICAgIG4vPWs7CiAgICAgICAgICAgIHByaW50ZigiJWQgIixrKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQp9