/*
水题,输出有点坑,输出的最后是有一个空格的
*/
#include<iostream>
#include<cmath>
#define Max 65535
using namespace std;
int pr[Max/2+5], dp[Max+1];
void ss()
{
memset(dp, 0, sizeof(dp));
int i, j;
for( i=2; i <= Max/2 ; i++ )
{
for( j=i+i; j <= Max; j+=i )
dp[j] = 1;
}
for( i=2, j=0; i <= Max; i++)
{
if(dp[i] == 0)
pr[j++] = i;
}
}
int main()
{
int n, T=1;
ss();
bool p = false;
while(scanf("%d", &n) != EOF && n >= 0)
{
if(p)
printf("\n");
p =true;
printf("Case %d.\n", T++);
int i=0, m=0;
bool pp = false;
while(1)
{
if(n%pr[i] == 0)
m++, n /= pr[i];
else
{
if(m)
{
//if(pp)
// printf(" ");
//pp = true;
printf("%d %d ", pr[i], m);
}
i++;
m=0;
if(n/pr[i] == 0)
break;
}
}
printf("\n");
}
return 0;
}