#include <cstdio> #include <cmath> #include <cstring> #include <iostream> using namespace std ; int a[100] = {1} ; //int a[25] ; bool vst[100] ; int n ; bool isPrime(int m) { if(m<2) return false ; int i,k = sqrt(m) ; for(i = 2;i<=k;i++) { if(m%i==0) break ; } if(i>k) return true ; else return false ; } void dfs(int cur) { if(cur == n-1) { if(isPrime(a[n-1]+1)) { printf("1") ; for(int i = 1;i<n;i++) { printf(" %d",a[i]) ; } printf(" ") ; } return ; } for(int i = 2;i<=n;i++) { //a[cur] = i ; if(!vst[i] && isPrime(a[cur]+i)) { vst[i] = true ; a[cur+1] = i ; dfs(cur+1) ; vst[i] = false ; } } } int main() { while(scanf("%d",&n)!=EOF) { memset(vst,false,sizeof(a)) ; dfs(0) ; } }