输入n吧1,2,。。。n组成一个环
# include <stdio.h>
int n;int vis[20];int A[20];
int isp(int x){
for (int i=2;i<x;i++){
if (x%i==0)return 0;
}
return 1;
}
int dfs(int cur){//确定A【cur】到A[n]之间的数
int i;
if (cur==n+1){
for (i=1;i<=n;i++)printf ("%d",A[i]);
printf("\n");
return 0;
}
for (i=1;i<=n;i++){
if (vis[i]==1&&isp(A[cur-1]+i)){A[cur]=i;vis[i]=0;dfs(cur+1);vis[i]=1;}
}
return 0;
}
int main (){
int A[20];
for (int i=1;i<=16;i++){
vis[i]=1;
}
scanf ("%d",&n);
vis[1]=1;
dfs(1);
return 0;
}