#include<bits/stdc++.h> using namespace std; const int N=1010; int n; bool use[N]; int shu[N]; bool prime[N]; bool ok; void dfs(int k) { if(k==n+1) { ok=true;//已找到 return; } for(int i=1;i<=n;i++) { if(!ok&&!use[i]&&!prime[i+k]) { shu[k]=i; use[i]=true; dfs(k+1); use[i]=false; if(ok) { return; } } } } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); //筛质数 for(int i=2;i<=N;i++) { for(int j=i+i;j<=N;j+=i) { prime[j]=true;//不是质数 } } cin>>n; ok=false; dfs(1); if(ok) { for(int i=1;i<=n;i++) { cout<<shu[i]<<' '; } } else{ cout<<'-1'; } return 0; }
全部评论
(0) 回帖