K-프라임 숫자
자연수는 다중도로 계산된 정확히 k개의 소인수를 갖는 경우 k-소수라고 합니다.
이는 4의 유일한 소인수가 2이더라도 2-소수가 된다는 것을 의미합니다. 왜냐하면 -
4 =2 * 2 및 두 2 모두 별도로 계산되어 2로 계산됩니다.
마찬가지로 8은 3-소수입니다. 8 =2 * 2 * 2가 3으로 계산되기 때문입니다.
문제
우리는 숫자 k, 거리 및 범위를 취하는 JavaScript 함수를 작성해야 합니다.
우리의 함수는 지정된 거리와 정확히 같은 거리 사이의 범위 내에서 k-소수를 포함하는 배열의 배열을 반환해야 합니다.
예시
다음은 코드입니다 -
const k = 2; const step = 2; const range = [0, 50]; const kPrimeSteps = (k = 1, step = 1, [start, end]) => { const res = []; let i = start; const findLen = (n = 1) => { let count = 0, i = 2; while (i * i <= n) { while (n % i === 0) { count++; n /= i; } i++; } if (n > 1) count++; return count; } while (i <= end - step) { if ((findLen(i) == k && findLen(i+step) == k)) res.push([i, i+step]); i++; } return res; }; console.log(kPrimeSteps(k, step, range));
출력
다음은 콘솔 출력입니다 -
[ [ 4, 6 ], [ 33, 35 ] ]