js-找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。
Posted ZhangCui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js-找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。相关的知识,希望对你有一定的参考价值。
存档。
找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。
1 function smallestCommons(arr) { 2 //分解质因数法,分解为若干个质数相乘 3 var arrratio=[]; 4 var l=0; 5 var min=Math.min(arr[0],arr[1]); 6 var max=Math.max(arr[0],arr[1]); 7 for(var i=min+1;i<max;i++){ 8 arr.push(i); 9 } 10 11 /* var prime=[2]; 12 for(var j=3;j<=max;j++){ 13 var isprime=1; 14 for(var k=2;k<j;k++){ 15 if(j%k===0){ 16 isprime=-1; 17 } 18 } 19 if(isprime===1){ 20 prime.push(j); 21 } 22 }*/ 23 24 var arrtemp=[]; 25 for(var j=2;j<=max;j++){ 26 arrtemp.push(j); 27 } 28 var prime=arrtemp.filter(function(val){ 29 for(var k=2;k<val;k++){ 30 if(val%k===0){ 31 return false; 32 } 33 } 34 return true; 35 }); 36 37 while(arr.reduce(function(a,b){return a+b;})!==(max-min+1)){ 38 for(var m=0;m<prime.length;m++){ 39 var isratio=-1; 40 for(var n=0;n<arr.length;n++){ 41 if(arr[n]%prime[m]===0){ 42 isratio=1; 43 arr[n]=arr[n]/prime[m]; 44 } 45 } 46 if(isratio===1){ 47 arrratio[l++]=prime[m]; 48 } 49 } 50 } 51 52 return arrratio.reduce(function(a,b){return a*b;}); 53 54 } 55 56 57 smallestCommons([12,13]);
以上是关于js-找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。的主要内容,如果未能解决你的问题,请参考以下文章