当前位置: 首页 > news >正文

算法练习--素数环

输入一个数字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;
}




相关文章:

  • 算法练习--判断连续相同字符串
  • [IE编程] IE8的SDK 下载
  • JS 数组扩展函数--求起始项到终止项和
  • 谷歌音乐搜索模式是个不错的尝试
  • 前端实用的东西--持续更新
  • 在FreeBSD 用户空间与内核空间使用内存共享
  • 大图片根据分辨率自适应宽度
  • 2009年全球互联网预言---商业周刊
  • 序列划分-使其最大值最小化
  • 自定义异常类的使用...
  • 使用欧几里得定理求最大公约数和最小公倍数
  • 移动设备管理(MDM)与OMA(OTA)DM协议向导(二)——WAP协议(2)
  • 斐波那契数列算法的快速版本
  • 3月OpenParty春晴活动纪实——“如何成为一个高效的程序员”
  • 使用stein 算法计算 最大公约数和最小公倍数
  • Android单元测试 - 几个重要问题
  • javascript数组去重/查找/插入/删除
  • Java-详解HashMap
  • Linux链接文件
  • QQ浏览器x5内核的兼容性问题
  • react-native 安卓真机环境搭建
  • SpriteKit 技巧之添加背景图片
  • vue-cli在webpack的配置文件探究
  • 闭包--闭包之tab栏切换(四)
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 坑!为什么View.startAnimation不起作用?
  • 排序算法之--选择排序
  • 深入浏览器事件循环的本质
  • 一、python与pycharm的安装
  • 怎样选择前端框架
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • zabbix3.2监控linux磁盘IO
  • 如何用纯 CSS 创作一个货车 loader
  • ​ArcGIS Pro 如何批量删除字段
  • ​VRRP 虚拟路由冗余协议(华为)
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #传输# #传输数据判断#
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • $jQuery 重写Alert样式方法
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)(1.13) SiK无线电高级配置(五)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (笔试题)分解质因式
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (一)Java算法:二分查找
  • .bat批处理(六):替换字符串中匹配的子串
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Core中的去虚
  • .NET建议使用的大小写命名原则
  • .NET开发者必备的11款免费工具
  • .net连接oracle数据库
  • .NET连接数据库方式