K-প্রাইম নম্বর
একটি প্রাকৃতিক সংখ্যা কে k-প্রাইম বলা হয় যদি তার ঠিক kটি প্রাইম ফ্যাক্টর থাকে, multiplicity সহ গণনা করলে।
অর্থাৎ ৪-এর একমাত্র প্রাইম ফ্যাক্টর ২ হলেও সেটি ২-প্রাইম নম্বর, কারণ ৪ = ২ × ২ এবং দুটি ২ আলাদা আলাদা গড়ে কাউন্ট হবে।
একইভাবে, ৮ হলো ৩-প্রাইম কারণ ৮ = ২ × ২ × ২।
সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা k, একটি দূরত্ব (distance) এবং একটি রেঞ্জ নেবে।
ফাংশনটি রেঞ্জের ভিতরে এমন 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 ] ]