#include<iostream>
#include<algorithm>
#include<iomanip>
#include<queue>
#include<vector>
#include<cstdio>
using namespace std;
int n,sum = 1;
bool p[50] = {1},v[50];
int a[20];
void pr(){//找质数
for(int i = 2;i <= 45;i++){
for(int j = 2;j * i <= 45;j++){
p[j * i] = 0;
}
}
}
void dfs(int s){
if(s == n && p[a[s - 1] + 1]){//所有数都被用过了并且最后一个数加一是素数
cout<<'1';
for(int i = 1;i < n;i++) cout<<' '<<a[i];
cout<<endl;
return;
}
for(int i = 2;i <= n;i++){
if(!v[i] && p[a[s-1] + i]){//当这个数没有被用过并且它与上一个数的和是素数
v[i] = 1;
a[s] = i;
dfs(s + 1);
v[i] = 0;
}
}
}
int main(){
pr();//找质数
while(cin>>n){//输入
printf("Case %d:\n",sum);
sum++;
dfs(1);
}
return 0;
}
输入后只输出Case i: 求助