题目描述
将1-n这n个数摆成一个环,要求相邻的两个数的和是一个素数,编程输出所有可能的解。
输入
包括多组数据,每组1个数n。n<20
输出
所有可能的解。
输出格式见样例。
样例输入
6 8
样例输出
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
#include<iostream>
#include<cstdio>
using namespace std;
int a[50] = { 0 };
int b[50] = { 0 };
int n;
int c = 1;
bool sushu(int m)
{
for (int i = 2; i < m; i++)
{
if (m%i == 0)return false;
}
return true;
}
void f(int k)//k是指名是第几个数字
{
if (k == n + 1 && sushu(a[n] + a[1]))
{
for (int i = 1; i < n; i++)
{
cout << a[i] << ' ';
}
cout << a[n] << endl;
}
else
{
for (int i = 2; i <= n; i+