কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে বর্গ ভাজকের যোগফল পূর্ণবর্গ হলে সেই সংখ্যা বের করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি রেঞ্জ নির্দেশকারী দুটি সংখ্যার অ্যারে m এবং n নেবে। ফাংশনটি m এবং n (১ <= m <= n) এর মাঝপথে সকল পূর্ণসংখ্যা খুঁজে বের করবে যাদের বর্গ ভাজকগুলোর যোগফল নিজে একটি পূর্ণবর্গ (perfect square) হয়। ফলাফলটি সাব-অ্যারে আকারে ফেরত দেবে: প্রথমে সংখ্যাটি, তারপর তার বর্গ ভাজকগুলোর যোগফল।

উদাহরণ

নিচে কোডটি দেওয়া হলো:

const range = [1, 500];
const listSquared = ([m, n]) => {
  const res = [];
  for (let i = m; i <= n; ++i) {
    let sum = getDivisors(i).reduce((sum, n) => sum + n * n, 0);
    let ok = Number.isInteger(Math.sqrt(sum));
    if (ok) {
      res.push([i, sum]);
    }
  }
  return res;
}
function getDivisors (n) {
  const divisors = [];
  for (let i = 1; i <= n / 2; ++i) {
    if (n % i) {
      continue;
    }
    divisors.push(i);
  }
  return divisors.concat([n]);
}
console.log(listSquared(range));

আউটপুট

[ [ 1, 1 ], [ 42, 2500 ], [ 246, 84100 ], [ 287, 84100 ] ]

  1. জাভাস্ক্রিপ্টে নির্দিষ্ট সাইজের অ্যারে বানানো যেন সমsekutিভ দুটির সমষ্টি পারফেক্ট স্কয়ার হয়

  2. জাভাস্ক্রিপ্টে অ্যারেতে সংখ্যাগুলোর বর্গ ও বর্গমূলের যোগফল বের করা

  3. জাভাস্ক্রিপ্টে n পর্যন্ত সমস্ত পারফেক্ট কিউবের যোগফল

  4. সি++-এ যোগফল পূর্ণবর্গ হয় এমন পেয়ার গণনা