Min Factor Distance
This commit is contained in:
29
min-factor-distance/index.js
Normal file
29
min-factor-distance/index.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
// 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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user