dfs 加油
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<string>
#include<algorithm>
#include<string.h>
using namespace std;
int n;int a[20];int prime[50]={0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0};
int visited[25];int num=0;
void dfs(int cnt)
{
int i;
if(cnt==n&&prime[a[0]+a[n-1]])
{
printf("%d",a[0]);
for(i=1;i<n;i++)
{
printf(" %d",a[i]);
}
printf("\n");
return;
}
else
{
for(i=2;i<=n;i++)
{
if(!visited[i]&&prime[i+a[cnt-1]])
{
a[cnt]=i;
visited[i]=1;
dfs(cnt+1);
visited[i]=0;
}
}
}
}
int main()
{
int i;
while(~scanf("%d",&n))
{
num++;
memset(visited,0,sizeof(visited));
a[0]=1;visited[1]=1;
printf("Case %d:\n",num);
dfs(1);
cout<<endl;
}
}