के-प्राइम नंबर
एक प्राकृत संख्या को k-अभाज्य कहा जाता है यदि उसके ठीक k अभाज्य गुणनखंड हों, जिन्हें बहुलता के साथ गिना जाए।
जिसका मतलब है कि भले ही 4 का एकमात्र अभाज्य गुणनखंड 2 है, यह 2-अभाज्य संख्या होगी क्योंकि -
4 =2 * 2 और दोनों 2 को अलग-अलग गिना जाएगा और गिनती 2 हो जाएगी।
इसी तरह, 8 3-अभाज्य है क्योंकि 8 =2 * 2 * 2 गिनती को 3 तक ले जाता है।
समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक संख्या k, एक दूरी और एक सीमा लेता है।
हमारे फ़ंक्शन को सरणी की एक सरणी लौटानी चाहिए जिसमें 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 ] ]