# 2312번. 수 복원하기
for_inrange(int(input())):n=int(input())num=2# 딕셔너리에 인수:개수 형태로 넣어줌
ansDict={}foriinrange(n+1):ansDict[i]=0whileTrue:# 다 나누어지면 종료
ifn==1:break# 나누어떨어지지 않으면 다음 수로
ifn%num!=0:num+=1else:# 인수 check
n/=numansDict[num]+=1foriinansDict.items():ifi[1]!=0:print(i[0],i[1])