#include<stdio.h>
#include<string.h>
int s[50]={0},arr[20],u[20]={0},n;
void dfs(int k){
int i;
if(k==n){
if(!s[arr[0]+arr[k-1]]){
printf("%d",arr[0]);
for(i=1;i<n;i++)
printf(" %d",arr[i]);
puts("");
}
return;
}
for(i=1;i<=n;i++){
if(!u[i]){
if(!s[arr[k-1]+i])
u[i]=1,arr[k]=i,dfs(k+1),u[i]=0;
}
}
}
int main(){
int i,j,C=0;
for(i=2;i<=40;i++){
if(!s[i]){
for(j=i+i;j<=40;j+=i)
s[j]=1;
}
}
while(scanf("%d",&n)!=EOF){
if(C) puts("");
printf("Case %d:\n",++C);
arr[0]=1,u[1]=1;
dfs(1);
}
}
沒有留言:
張貼留言