问题描述
素数环是一个计算机程序问题,指的是将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数
思路分析
我们可以根据问题建成一个根节点为1深度为n的n叉数。通过对解空间的进行回溯剪枝(条件就是相邻两元素和为素数以及是否重复使用)就可以得到所有解。
java实现
public class PrimeRing {
protected int k, x[], count;//k叉树,x[]存放一个解,count可行方案数
public PrimeRing(int k, int n) //初始化参数,k为k叉数,在这个问题中k=n,n是树高及一个解的深度。
{
this.k = k;
this.x = new int[n];
x[0] = 1; //元素初值为1
this.count = 0;
}
public void printAll()//打印
{
this.count = 0;
this.backtrack(1</