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

সংখ্যার ফ্যাক্টরের সংখ্যা গণনা - JavaScript

একটি সংখ্যা কতগুলো পূর্ণসংখ্যা দিয়ে বিভাজ্য (ফ্যাক্টর) সেটি গণনা করা।

উদাহরণ

12 এর ফ্যাক্টর: 1, 2, 3, 4, 6, 12
মোট: ৬টি

অপ্টিমাইজড সমাধান (O(√n))

const countFactors = (num) => {
  if (num <= 0) return 0;
  if (num === 1) return 1;
  
  let count = 0;
  const sqrt = Math.sqrt(num);
  
  for (let i = 1; i <= sqrt; i++) {
    if (num % i === 0) {
      if (i === sqrt) {
        count += 1; // পারফেক্ট স্কয়ার, রুট একবার কাউন্ট
      } else {
        count += 2; // i এবং num/i দুটি ফ্যাক্টর
      }
    }
  }
  
  return count;
};

// টেস্ট
console.log(countFactors(12));   // 6 (1,2,3,4,6,12)
console.log(countFactors(2));    // 2 (1,2)
console.log(countFactors(454));  // 4 (1,2,227,454)
console.log(countFactors(99));   // 6 (1,3,9,11,33,99)
console.log(countFactors(36));   // 9 (1,2,3,4,6,9,12,18,36)

ব্যাখ্যা

  • √n পর্যন্ত লুপ: ফ্যাক্টর জোড়ায় আসে (i, n/i)
  • পারফেক্ট স্কয়ার: রুট দিয়ে একবার কাউন্ট
  • প্রাইম ফ্যাক্টরাইজেশন দিয়ে: O(√n) এ ফ্যাক্টর পাওয়া যায়, তারপর কাউন্ট = (e₁+1)(e₂+1)...

প্রাইম ফ্যাক্টরাইজেশন দিয়ে কাউন্ট

const countFactorsPrime = (num) => {
  if (num <= 0) return 0;
  if (num === 1) return 1;
  
  let n = num;
  let count = 1;
  
  for (let p = 2; p * p <= n; p++) {
    let exp = 0;
    while (n % p === 0) {
      exp++;
      n /= p;
    }
    if (exp > 0) count *= (exp + 1);
  }
  
  if (n > 1) count *= 2; // বাকি প্রাইম ফ্যাক্টর
  
  return count;
};

উৎপাদন

6
2
4
6
  1. জাভাস্ক্রিপ্ট Number() ফাংশন

  2. জাভাস্ক্রিপ্টে ইংরেজি কাউন্ট নাম্বার (English count number) বের করা

  3. জাভাস্ক্রিপ্টে সংখ্যার দশমিক সংখ্যা গণনা

  4. জাভাস্ক্রিপ্টে সংখ্যা প্যাটার্ন প্রিন্ট করা