#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usingnamespace std;intis_prime(int x){for(int i =2; i * i <= x; i++)if(x % i ==0)return0;return1;}int n, A[50], isp[50], vis[50];voiddfs(int l){if(l == n && isp[A[0]+ A[n -1]]){for(int i =0; i < n;++i)if(i ==0)printf("%d", A[i]);elseprintf(" %d", A[i]);printf("\n");}else{for(int i =2; i <= n;++i)if(!vis[i]&& isp[i + A[l -1]]){
A[l]= i;
vis[i]=1;dfs(l +1);
vis[i]=0;}}}intmain(){int kase =0;for(int i =2; i <=20*2; i++) isp[i]=is_prime(i);while(scanf("%d",&n)==1&& n >0){printf("Case %d:\n",++kase);memset(vis,0,sizeof(vis));
A[0]=1;dfs(1);printf("\n");}return0;}
素数环问题#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int is_prime(int x) { for (int i = 2; i * i <= x; i++) if (x % i == 0) return 0; return 1;}int n, A[50], isp[50], vis[50