啃爹的輸出格式!PE了好幾次!
#include<cstdio>#include<cstring>#include<cmath>using namespace std;const int maxn=16;int vis[maxn],A[maxn]; int n;bool isp(int temp){ //判斷是否為素數,是則返回true; int flag=1; for(int i=2;i<=sqrt(temp);i++){ if(temp%i==0){ flag=0;break; } } if(flag)return true; else return false;}void dfs(int cur){ if(cur==n && isp(A[0]+A[n-1])){ PRintf("%d",A[0]); for(int i=1;i<n;i++)printf(" %d",A[i]); printf("/n"); } else for(int i=2;i<=n;i++){ //嘗試放置每個數i; if(!vis[i] && isp(A[cur-1]+i)){ //如果i沒有被使用過,并且與前一個數之和為素數 A[cur]=i; vis[i]=1; //使用標志 dfs(cur+1); vis[i]=0; //一定要改回 } }}int main(){ int count=0; while(scanf("%d",&n)==1){ memset(vis,0,sizeof(vis)); A[0]=1; if(count++)printf("/n"); printf("Case %d:/n",count); dfs(1); } return 0;}
新聞熱點
疑難解答