现在的位置: 首页 > web前端 > 正文

js实现分解质因数

2020年07月13日 web前端 ⁄ 共 1174字 ⁄ 字号 评论关闭

  js实现分解质因数,该怎么办?定义一个数组,用来存放因数;定义数组里面数的位置的起始值0;定义分解质因数的函数;如果被分解的数为1、2、3,则直接存入数组,并返回结果。


  js实现分解质因数代码如下:


  <script>


  //定义一个数组,用来存放因数


  varfactorList=[];


  //定义数组里面数的位置的起始值0


  vara=0;


  //定义分解质因数的函数


  functiondecomposition(num){


  vari=2;


  //如果被分解的数为1、2、3,则直接存入数组,并返回结果


  if((num==1)||(num==2)||(num==3)){


  factorList[a++]=num;


  returnfactorList;


  }


  //如果被分解的数不是1、2、3,则需要先存下它最小的因数,然后除以它的最小的因数之后再次进行分解


  //num/2是因为如果在num的一半大小之前如果没有找到因数,那么之后也不会有,因此不需要后面的部分也进入循环,提升效率


  for(;i<=num/2;i++){


  if(num%i==0){


  //存下一个因数(后面跳出循环保证存入的是最小的)


  factorList[a++]=i;


  //除以因数后,继续进行分解操作


  decomposition(num/i);


  //跳出循环,确保存入数组的是最小的因数


  break;


  }


  }


  //存放最后一个质因数


  if(i>num/2){


  factorList[a++]=num;


  }


  returnfactorList;


  }


  //提示输入一个需要分解质因数的数


  varinput=Number(prompt("请输入一个数:"));


  //传入分解质因数的函数中,调用


  decomposition(input);


  //定义输出的结果


  result=input+"="


  //循环将数组中的值,即各质因数放入结果中


  for(varx=0;x<factorList.length;x++){


  result+=factorList[x];


  //最后一个质因数放入结果后,不需要*号


  if(x!=factorList.length-1){


  result+="*";


  }


  }


  //页面中写出结果


  document.write("<h1>"+result+"</h1>");


  </script>


   对266进行质因数的分解:


   varp=fenjie(266);


   for(indexinp){


    console.dir(index+""+p[index]);


   }


   运行结果:266=2*7*19


  总之,js实现分解质因数给大家简单的介绍了一些,希望大家多看看。

抱歉!评论已关闭.