function getNextDivice (initYinzi,initYinziList) {
let nextyinzi = initYinzi+1
let flag = false
for(let i in initYinziList){
if(nextyinzi%initYinziList[i]==0){
flag = true
}
}
if(flag){
return getNextDivice (nextyinzi,initYinziList)
}else{
return nextyinzi
}
}
function getLastnum (lastlist,num){
if(num==1){
return num
}
let divice = lastlist.reduce((prev,cur)=>{return prev*cur})
return num/divice
}
function getYinziList (num,initYinzi,initYinziList) {
let list = [] ;
let innnerInitYinziList = initYinziList
let samelist = getSameYinziList (num,initYinzi)
list = list.concat(samelist)
if(getLastnum(samelist,num)!==1){
let lastnum = getLastnum(samelist,num)
let nextyinzi = getNextDivice (initYinzi,innnerInitYinziList)
innnerInitYinziList.push(nextyinzi)
list = list.concat(getYinziList (lastnum,nextyinzi,innnerInitYinziList))
}
return list
}
function getSameYinziList (lastnum,yinzi) {
let list = [];
if(lastnum%yinzi==0){
list.push(yinzi)
list = list.concat(getSameYinziList (lastnum/yinzi,yinzi))
}
return list
}
console.log(getYinziList (180,2,[2]))
逻辑练习(求180拥有的质数
最新推荐文章于 2024-07-20 23:54:17 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)