#include
#include
int pNum[10000];
bool checkPrime(int x){
for(int i=2;i<=sqrt(x);i++){
if(x%i==0){
return false;
}
}
return true;
}
void findFactor(int x){
for(int i=x;i>1;i--){
for(int j=2;j<=x;j++){
if(checkPrime(j) && i%j==0){
int temp = i;
while(temp%j==0){
pNum[j]++;
temp/=j;
}
}
}
}
}
int main(){
int tc;
scanf("%d",&tc);
for(int i=1;i<=tc;i++){
int in, now = 0,count=0;
scanf("%in",&in);
printf("Case #%d:\n",i);
findFactor(in);
for(int j=2;j<=10000;j++){
if(pNum[j]!=0){
printf("%d %d\n",j,pNum[j]);
count-=pNum[j];
}
pNum[j] = 0;
if(j>in){
break;
}
}
}
return 0;
}