输入一个数字n,输出[1,N]内的所有组合,满足a[i]+a[i+1]为素数,其中i∈[0,i-1]
例如输入:6
输出:1,4,3,2,5,6
实现:
var MAX = 10;
////setup prime array
var primeArr = new Array();
var Ann = function a(arr){
if(arr.length <= 1){return arr;}
var rr = new Array();
for(var i = 0; i<arr.length;i++){
//get a copy
var ar = new Array();
for(var j = 0; j < arr.length;j++){ar[j] = arr[j];}
var current = ar[i];
ar.splice(i,1);
var childRet = a(ar);
for(var k = 0 ;k < childRet.length;k++){
var str = (current + "," + childRet[k]);
if(str.length < 2 || isPrimeCycle(str)){
rr.push(str);
}
}
}
return rr;
}
////setup prime array
for(var i = 1;i <= MAX; i++){
for(var j = 1;j <= MAX; j++){
if(i!=j && isPrime(i+j)){primeArr[i+j] = 1;}
}
}
////init input array
var a = new Array();
for(var i = 0;i < MAX; i++){
a.push(i+1);
}
////run
var ret = Ann(a);
////print result
for(var i = 0;i < ret.length;i++){
outRet(ret[i]);
}
var count = 0;
function outRet(r) {
count = count + 1;
console.log("==============" + "," + count.toString());
console.log(r);
}
function isPrimeCycle(str){
var arr = str.split(',');
for(var i = 0;i < arr.length-1; i++){
if(primeArr[parseInt(arr[i])+parseInt(arr[i+1])] != 1){return false;}
}
return true;
}
function isPrime(n){
for(var i = 2; i < n; i++){if(n%i == 0){return false;}}
return true;
}
分享到:
相关推荐
4--[scratch算法练习-找素数].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码4--[scratch算法练习-找素数].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码4--[scratch算法练习-找素数].zip源码...
scratch2源码算法练习-找素数本资源系百度网盘分享地址
算法练习-找素数-少儿编程scratch项目源代码文件案例素材.zip
2--[scratch算法练习-在正方形内吗?].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-在正方形内吗?].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-在...
2--[scratch算法练习-价格查询].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-价格查询].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-价格查询].zip...
4--[scratch算法练习-列表倒序].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码4--[scratch算法练习-列表倒序].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码4--[scratch算法练习-列表倒序]....
2--[scratch算法练习-打电话].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-打电话].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-打电话].zip源码...
2--[scratch算法练习-分段函数].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-分段函数].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-分段函数].zip...
2--[scratch算法练习-计算天数].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-计算天数].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-计算天数].zip...
3--[scratch算法练习-猜数字].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-猜数字].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-猜数字].zip源码...
3--[scratch算法练习-存款收益].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-存款收益].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-存款收益].zip...
3--[scratch算法练习-分配任务].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-分配任务].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-分配任务].zip...
3--[scratch算法练习-矩形填充].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-矩形填充].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-矩形填充].zip...
4--[scratch算法练习-温度转换].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码4--[scratch算法练习-温度转换].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码4--[scratch算法练习-温度转换].zip...
6--[scratch算法练习-选择排序].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码6--[scratch算法练习-选择排序].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码6--[scratch算法练习-选择排序]....
1--[scratch算法练习-最大跨度].zip源码scratch2.0 3.0编程项目源文件源码经典案例素材源代码1--[scratch算法练习-最大跨度].zip源码scratch2.0 3.0编程项目源文件源码经典案例素材源代码1--[scratch算法练习-最大...
1--[scratch算法练习-表演打分].zip源码scratch2.0 3.0编程项目源文件源码经典案例素材源代码1--[scratch算法练习-表演打分].zip源码scratch2.0 3.0编程项目源文件源码经典案例素材源代码1--[scratch算法练习-表演...
1--[scratch算法练习-信息加密].zip源码scratch2.0 3.0编程项目源文件源码经典案例素材源代码1--[scratch算法练习-信息加密].zip源码scratch2.0 3.0编程项目源文件源码经典案例素材源代码1--[scratch算法练习-信息...
2--[scratch算法练习-求平均年龄].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-求平均年龄].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[scratch算法练习-求平均年龄...
3--[scratch算法练习-计算三角形面积].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-计算三角形面积].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码3--[scratch算法练习-...