章節連結
從網路課程 程式必修課!離散數學與演算法 來淺嚐一下沒機會在課堂上所學的離散數學與演算法。或許對撰寫程式的效能提昇會有些幫助。
課程相關資訊
[連結]:https://hiskio.com/courses/1196/lectures/133745
本篇範圍:Chapter 5
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
質數 Prime Number
1. 在所有的自然數中,僅能拆解成 1 * N 或是 N * 1
2. 由於兩個相當大的質數 ( 10000 位數 ) 相乘後的乘積,並不容易反推,因此被用作密碼學的基礎
IsPrime
在起始值小於 n 時,若所有的值都無法整除該數,那此數就是質數
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 |
const isPrime = (n) => { if(!Number.isInteger(n) || n<=1) return 'Not Valid Input' let start = 2 let result = true while(start < n){ if (n % start === 0){ result = false break } start++ } return result } console.log('sss', isPrime('sss')) // Not valid Input console.log('-1.5', isPrime(-1.5)) // Not valid Input console.log('-1', isPrime(-1)) // Not valid Input console.log('0', isPrime(0)) // Not valid Input console.log('1', isPrime(1)) // Not valid Input console.log('1.5', isPrime(1.5)) // Not valid Input console.log('2', isPrime(2)) // true console.log('3', isPrime(3)) // true console.log('10', isPrime(10)) // false |