码迷,mamicode.com
首页 > 编程语言 > 详细

运动算法--整数被分成素数的乘积

时间:2015-06-28 15:29:45      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

问题:

进入6

出口 1*2*3


1. build素数表

2. 从质数的序列中取素数列表,n除了黄金,这个假设是不能分开的,素数表索引++,除此以外,n/=素数,继续推理

3. 特拉弗斯素表

4. 有限性:须要足够大 ,假设数字很大,此算法须要改变


JS 实现:


function p(n){
if(n<2) {return 0;}
if(n == 2){return 1;}
for(var i = 2; i < n; i++){
if(n%i == 0){return 0;}
}
return 1;
}

var pl = new Array();
for(var i = 2,index = 0;index<100;i++){
if(p(i) == 1){pl.push(i);index++;}
}

function f(n){
var pIndex = 0;
var ret = "1";

for(;pIndex<100; ){
if( n % pl[pIndex] == 0){
ret += "*" + pl[pIndex]; 
n/=pl[pIndex];
}
else{
if(p(n)){
ret += "*" + n;
return ret;
}
pIndex ++;
}

}

return ret;
}

console.log(f(111223));





运动算法--整数被分成素数的乘积

标签:

原文地址:http://www.cnblogs.com/mengfanrong/p/4605504.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!