js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。...
生活随笔
收集整理的這篇文章主要介紹了
js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
存檔。
找出能被兩個給定參數和它們之間的連續數字整除的最小公倍數。
function smallestCommons(arr) {//分解質因數法,分解為若干個質數相乘var arrratio=[];var min=Math.min(arr[0],arr[1]);var max=Math.max(arr[0],arr[1]);for(var i=min+1;i<max;i++){arr.push(i);}//找出小于max的所有質數var arrtemp=[];for(var j=2;j<=max;j++){arrtemp.push(j);}var prime=arrtemp.filter(function(val){for(var k=2;k<val;k++){if(val%k===0){return false;}}return true;});//用這一排數分別除以從小到大的質數,如果某個數能除盡,則把那個數變為除后的數,把這個質數放在arrratio數組里備用。直至arr里每個數都變成1。這個方法是分解質因數法,詳情見小學或初中課本。while(arr.reduce(function(a,b){return a+b;})!==(max-min+1)){for(var m=0;m<prime.length;m++){var isratio=0;for(var n=0;n<arr.length;n++){if(arr[n]%prime[m]===0){isratio=1;arr[n]=arr[n]/prime[m]; }}if(isratio){arrratio[arrratio.length]=prime[m];}}}//最后把arrratio數組里的數相乘便是這一組數的最小公倍數。return arrratio.reduce(function(a,b){return a*b;});}smallestCommons([1,13]);1到13的數的最小公倍數
?
總結
以上是生活随笔為你收集整理的js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式系统架构知识储备
- 下一篇: 页面滑动