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