Files
codewars/min-factor-distance/index.js
2017-09-17 19:59:19 +02:00

30 lines
659 B
JavaScript

// https://www.codewars.com/kata/min-factor-distance/train/javascript
function minDistance(n){
let f = factors(n);
f.unshift(1);
let min = Infinity;
for (let i = 1; i < f.length; ++i) {
let diff = f[i] - f[i-1];
if (0 < diff) {
min = Math.min(min, diff);
}
}
return min;
}
// https://gist.github.com/gkucmierz/41d47edbd0e5c3753915e9bbfe4ae1b2
function factors(n) {
let max = Math.floor(Math.sqrt(n));
let res = [];
for (let i = 2; i <= max; ++i) {
if (n % i === 0) {
res.push(i);
n /= i;
max = Math.floor(Math.sqrt(n));
i = (Math.min(...res) || 2) - 1;
}
}
res.push(n);
return res;
}