Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function isPrime(n) {
- for (var i = 2; i < n; i++) {
- if (n % i === 0) {
- return false
- }
- }
- return n > 1
- }
- function createPrimes(n) {
- if (n < 2) {
- return []
- }
- var primes = [2]
- for (var next = 3; next <= n; next++) {
- if (isPrime(next)){
- primes.push(next)
- }
- }
- return primes
- }
- function expandSeries(array) {
- if (array[0] > array[1]) {
- var tmp = array[0]
- array[0] = array[1]
- array[1] = tmp
- }
- var limit = array.pop()
- var i = array[0] + 1
- while (i <= limit) {
- array.push(i)
- i++
- }
- return array
- }
- function mcm(a, b) {
- var primes = createPrimes(a > b ? a : b)
- var factors = []
- var i = 0
- while (i < primes.length) {
- if (a % primes[i] === 0 && b % primes[i] === 0) {
- factors.push(primes[i])
- a = a / primes[i]
- b = b / primes[i]
- continue
- }
- if (a % primes[i] === 0) {
- factors.push(primes[i])
- a = a / primes[i]
- continue
- }
- if (b % primes[i] === 0) {
- factors.push(primes[i])
- b = b / primes[i]
- continue
- }
- i++
- }
- return factors.reduce((acc, val) => {
- return acc * val
- })
- }
- function smallestCommons(array) {
- return expandSeries(array).reduce((acc, val) => {
- return mcm(acc, val)
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement