此代码,洛谷IDE称‘TLE’
#include<bits/stdc++.h>
using namespace std;
void search(int);
void print();
bool pd(int,int);
int n;
int a[32];
bool b[32];
int total=0;
int main(){
cin>>n;
search(1);
return 0;
}
void search(int t){
for(int i=1;i<=n;i++){
if((pd(a[t-1],i))&&(!b[i])){
a[t]=i;
b[i]=1;
if(t==n){if(pd(a[n],a[1])) print();}
search(t+1);
b[i]=false;
}
}
}
void print(){
if(total==1) return ;
++total;
for(int j=1;j<=n;j++){
cout<<a[j]<<" ";
}
cout<<endl;
}
bool pd(int a,int b){
int d=2,c=a+b;
while(d<=sqrt(c)&&c%d!=0) d++;
if(d>sqrt(c)) return true;
else return false;
}