问题:素数环:从1到20这20个数摆成一个环,要求相邻的两个数的和是一个素数。
解析:从1开始,每个空位有20种可能,只要填进去的数合法:
- 与前面的数不相同;
- 与左边相邻的数的和是一个素数。
- 第20个数还要判断和第1个数的和是否素数。
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;
bool b[21]={
0}; //判断i是否出现在素数环中
int total=0,a[21]={
0}; //a记录素数环中的每一个数
int search(int t