js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。...
生活随笔
收集整理的這篇文章主要介紹了
js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。...
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
存檔。
找出能被兩個(gè)給定參數(shù)和它們之間的連續(xù)數(shù)字整除的最小公倍數(shù)。
function smallestCommons(arr) {//分解質(zhì)因數(shù)法,分解為若干個(gè)質(zhì)數(shù)相乘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的所有質(zhì)數(shù)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;});//用這一排數(shù)分別除以從小到大的質(zhì)數(shù),如果某個(gè)數(shù)能除盡,則把那個(gè)數(shù)變?yōu)槌蟮臄?shù),把這個(gè)質(zhì)數(shù)放在arrratio數(shù)組里備用。直至arr里每個(gè)數(shù)都變成1。這個(gè)方法是分解質(zhì)因數(shù)法,詳情見(jiàn)小學(xué)或初中課本。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];}}}//最后把a(bǔ)rrratio數(shù)組里的數(shù)相乘便是這一組數(shù)的最小公倍數(shù)。return arrratio.reduce(function(a,b){return a*b;});}smallestCommons([1,13]);1到13的數(shù)的最小公倍數(shù)
?
總結(jié)
以上是生活随笔為你收集整理的js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 分布式系统架构知识储备
- 下一篇: 页面滑动