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

29 lines
589 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;
}
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;
}