逻辑练习(求180拥有的质数

本文通过JavaScript编程,详细介绍了如何找出180以内的所有质数。通过对每个数字进行质数判断,揭示了质数判断的逻辑和算法思想。
摘要由CSDN通过智能技术生成
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]))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值