View Code
#include"iostream"
using namespace std;
int a[1001],b[1001];
int used[1001];
int n;
int i,j,q,t;
void Init()
{
for(i=1;i<40;i++) b[i]=1;
for(i=2;i<40;i++)
{
for(j=2;j<40;j++)
b[i*j]=0;
}
}
void dfs(int x, int y)
{
if(y == n)
{
if( b[x+1] )
{
a[n]=x;
cout<<"1 ";
for(q=2; q<=n; q++)
{
cout<<a[q];
if(q!=n) cout<<" ";
}
cout<<endl;
}
}
for(int p=2;p<=n;p++)
if(b[x+p] && used[p]==0)
{
a[y]=x;
used[p]=1;
dfs(p,y+1);
used[p]=0;
}
}
int main()
{
Init();
int k=0;
while(cin>>n)
{
memset(used, 0, sizeof(used));
used[1]=1;
a[1]=1;
cout<<"Case "<<++k<<":"<<endl;
dfs(1,1);
cout<<endl;
}
return 0;
}