#include<bits/stdc++.h> using namespace std; int n; int a[21]; bool b[21]; int total=0; bool pd(int x,int y); void search(int t); void print(); int main(){ cin>>n; for(int i=1;i<=n;i++) b[i]=true; search(1); cout<<"total:"<<total; } void search(int t){ for(int i=1;i<=n;i++){ if(pd(a[t-1],i) && b[i]==true){ a[t]=i; b[i]=false; if(t==n &&pd(a[1],a[n])){ print(); } search(t+1); b[i]=true; } } } bool pd(int x,int y){ int n; bool f; if(x==0){ return true; } f=true; n=x+y; for(int i=2;i<=sqrt(n);i++){ if(n%i==0){ f=false; break; } } if(f==false || n==0 || n==1){ return false; } else { return true; } } void print(){ total=total+1; cout<<total<<":"; for(int i=1;i<=n;i++){ cout<<a[i]<<" "; } cout<<endl; } /************************************************************** Problem: 1358 User: wangyichen2 Language: C++ Result: Accepted Time:11 ms Memory:2076 kb ****************************************************************/