Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. function isPrime(n) {
  2. for (var i = 2; i < n; i++) {
  3. if (n % i === 0) {
  4. return false
  5. }
  6. }
  7. return n > 1
  8. }
  9.  
  10. function createPrimes(n) {
  11. if (n < 2) {
  12. return []
  13. }
  14. var primes = [2]
  15. for (var next = 3; next <= n; next++) {
  16. if (isPrime(next)){
  17. primes.push(next)
  18. }
  19. }
  20. return primes
  21. }
  22.  
  23. function expandSeries(array) {
  24. if (array[0] > array[1]) {
  25. var tmp = array[0]
  26. array[0] = array[1]
  27. array[1] = tmp
  28. }
  29. var limit = array.pop()
  30. var i = array[0] + 1
  31. while (i <= limit) {
  32. array.push(i)
  33. i++
  34. }
  35. return array
  36. }
  37.  
  38. function mcm(a, b) {
  39. var primes = createPrimes(a > b ? a : b)
  40. var factors = []
  41. var i = 0
  42. while (i < primes.length) {
  43. if (a % primes[i] === 0 && b % primes[i] === 0) {
  44. factors.push(primes[i])
  45. a = a / primes[i]
  46. b = b / primes[i]
  47. continue
  48. }
  49. if (a % primes[i] === 0) {
  50. factors.push(primes[i])
  51. a = a / primes[i]
  52. continue
  53. }
  54. if (b % primes[i] === 0) {
  55. factors.push(primes[i])
  56. b = b / primes[i]
  57. continue
  58. }
  59. i++
  60. }
  61. return factors.reduce((acc, val) => {
  62. return acc * val
  63. })
  64. }
  65.  
  66. function smallestCommons(array) {
  67. return expandSeries(array).reduce((acc, val) => {
  68. return mcm(acc, val)
  69. })
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement