章節連結
從網路課程 程式必修課!離散數學與演算法 來淺嚐一下沒機會在課堂上所學的離散數學與演算法。或許對撰寫程式的效能提昇會有些幫助。
課程相關資訊
[連結]:https://hiskio.com/courses/1196/lectures/133750
本篇範圍:Chapter 5
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
質因數分解 – 程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
const primeFactor = (n) => { if (!Number.isInteger(n) || n <= 0) return 'Not Valid Input' if (n === 1) return '1' let p = 2 const temp = [] const answer = `${n} = ` while(p <= n){ if(n % p === 0){ temp.push(p) n = n / p }else{ p++ } } return `${answer}${temp.join(' * ')}` } console.log(primeFactor('sss')) // Not valid Input console.log(primeFactor(-1.5)) // Not valid Input console.log(primeFactor(-1)) // Not valid Input console.log(primeFactor(0)) // Not valid Input console.log(primeFactor(1)) // 1 console.log(primeFactor(2)) // 2 = 2 console.log(primeFactor(10)) // 10 = 2 * 5 console.log(primeFactor(100)) // 100 = 2 * 2 * 5 * 5 console.log(primeFactor(1200)) // 1200 = 2 * 2 * 2 * 2 * 3 * 5 * 5 |