Problem R: 素数环

Problem R: 素数环

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 709  Solved: 470
[Submit] [Status] [Web Board] [Creator:]

Description

输入正整数n,把整数1,2,3,。。,n组成一个环,使得相邻两个整数之和为素数。输出时从整数1开始顺时针排列。数字1一直在第一个位置。

Input

输入一个整数n。

Output

输出所有的满足条件的环。

Sample Input Copy

6

Sample Output Copy

<1>1 4 3 2 5 6
<2>1 6 5 2 3 4

HINT

#include<bits/stdc++.h>
using namespace std;
int n,j,s1,b[11],a[11];
int sushu(int x)
{
    for(int i=2;i*i<=x;i++)if(x%i==0)return 0;
    return 1;
}
int dfs(int k)
{
    for(int i=1;i<=n;i++)
    {
        if(b[i]==0 && sushu(i+ )==1)//如果这个值没被标记且跟前一个能组成素数
        {
            a[k]=i;//把这个数放入圆圈
            b[i]=1;//把这个i标记
            if( )
            {
                s1++;
                cout<<"<"<<s1<<">";
                for(j=1;j<=n;j++)cout<<a[j]<<" ";
                putchar('\n');
            }
            else dfs(k+1);//下一个圆圈
            b[i]=0;//原路返回
        }
    }
}
int main()
{
    cin>>n;
    dfs(1);//从第1个圆圈开始找