日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1031 质数环

發布時間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1031 质数环 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1031 質數環

?

時間限制: 1 s 空間限制: 128000 KB 題目等級 : 黃金 Gold 題目描述 Description

一個大小為N(N<=17)的質數環是由1到N共N個自然數組成的一個數環,數環上每兩個相鄰的數字之和為質數。如下圖是一個大小為6的質數環。為了方便描述,規定數環上的第一個數字總是1。如下圖可用1 4 3 2 5 6來描述。若兩個質數環,數字排列順序相同則視為本質相同。現在要求你求出所有本質不同的數環。

輸入描述 Input Description


只有一個數N,表示需求的質數環的大小。如:

輸出描述 Output Description

每一行描述一個數環,如果有多組解,按照字典序從小到大輸出。如:

樣例輸入 Sample Input

6

樣例輸出 Sample Output

1 4 3 2 5 6

1 6 5 2 3 4

數據范圍及提示 Data Size & Hint n<=17 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 using namespace std; 5 const int N=18; 6 int n; 7 int vis[N]; 8 int ans[N]; 9 int top; 10 int use[N]; 11 void print() 12 { 13 for(int i=1;i<=n;i++) 14 { 15 printf("%d ",ans[i]); 16 } 17 printf("\n"); 18 } 19 bool pd(int l) 20 { 21 for(int i=2; i<=sqrt(l); i++) 22 if(l%i==0)return false; 23 return true; 24 } 25 void dfs(int x) 26 { 27 for(int i=2;i<=n;i++) 28 { 29 if(use[i]==0&&pd(ans[x-1]+i)) 30 { 31 ans[x]=i; 32 use[i]=1; 33 if(x==n&&pd(ans[n]+ans[1]))print(); 34 else dfs(x+1); 35 use[i]=0; 36 } 37 } 38 } 39 int main() 40 { 41 cin>>n; 42 if(n%2==1) 43 { 44 cout<<endl; 45 return 0; 46 } 47 ans[1]=1; 48 dfs(2); 49 }

?

轉載于:https://www.cnblogs.com/lyqlyq/p/6752731.html

總結

以上是生活随笔為你收集整理的1031 质数环的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。