js实现分解质因数代码如下:
//定义一个数组,用来存放因数
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 result+=factorList[x]; //最后一个质因数放入结果后,不需要*号 if(x!=factorList.length-1){ result+="*"; } } //页面中写出结果 document.write(""+result+"
");
对266进行质因数的分解:
varp=fenjie(266);
for(indexinp){
console.dir(index+""+p[index]);
}
运行结果:266=2*7*19