描述
有乙個整數n,把從1到n的數字無重複的排列成環,且使每相鄰兩個數(包括首尾)的和都為素數,稱為素數環。
為了簡便起見,我們規定每個素數環都從1開始。例如,下圖就是6的乙個素數環。
輸入
有多組測試資料,每組輸入乙個n(0輸出
每組第一行輸出對應的case序號,從1開始。
如果存在滿足題意敘述的素數環,從小到大輸出。
否則輸出no answer。
樣例輸入
683樣例輸出0
case 1:思路:1 4 3 2 5 6
1 6 5 2 3 4
case 2:
1 2 3 8 5 6 7 4
1 2 5 8 3 4 7 6
1 4 7 6 5 8 3 2
1 6 7 4 3 8 5 2
case 3:
no answer
**:
#include#include#includeusing namespace std;
int a[45]=,b[21]=,v[21]=,n;
void init()//篩選出素數 }}
void dfs(int x)
for (j=2; j<=x; j++) }
if (x == n)//剛好n個數 ,是一種解
{ if (a[b[0] + b[x-1]]) //頭和尾也必須是素數
{ for (j=0; j>n)
{ if (n==0)
break;
t++;
cout<
素數環(深搜 C 版)
素數環 總時間限制 1000ms 記憶體限制 65536kb 描述 輸入正整數n,把整數1,2,3,n組成乙個環,使得相鄰兩個整數之和均為素數。小強同學看過這個題,笑了 呵呵,打表!mr.wu為了阻止小強打表,決定這樣 把全部的解按字典序排序後,從1開始編號,依次輸出指定編號的k組解。最後一行輸出總...
nyoj 488 素數環(深搜)
時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 有乙個整數n,把從1到n的數字無重複的排列成環,且使每相鄰兩個數 包括首尾 的和都為素數,稱為素數環。為了簡便起見,我們規定每個素數環都從1開始。例如,下圖就是6的乙個素數環。輸入 有多組測試資料,每組輸入乙個n 0輸出 每組第...
深搜 質數環
題目描述 description 乙個大小為n n 17 的質數環是由1到n共n個自然數組成的乙個數環,數環上每兩個相鄰的數字之和為質數。如下圖是乙個大小為6的質數環。為了方便描述,規定數環上的第乙個數字總是1。如下圖可用1 4 3 2 5 6來描述。若兩個質數環,數字排列順序相同則視為本質相同。現...