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 ] ]