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

C++-তে একটি সংখ্যার সব ফ্যাক্টরের গুণফল বের করা


একটি সংখ্যা n দেওয়া আছে। এর সব ফ্যাক্টর বের করে তাদের গুণফল রিটার্ন করতে হবে। ফ্যাক্টর হলো যেসব সংখ্যা দিয়ে n সম্পূর্ণ বিভাজ্য (১ সহ)। যেমন ৬-এর ফ্যাক্টর: ১, ২, ৩, ৬।

ইনপুট − n = 18

আউটপুট − 5832

ব্যাখ্যা − ১ × ২ × ৩ × ৬ × ৯ × ১৮ = ৫৮৩২

ইনপুট − n = 9

আউটপুট − 27

ব্যাখ্যা − ১ × ৩ × ৯ = ২৭

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • ইনপুট num নিন।
  • i = 1 থেকে i*i <= num পর্যন্ত লুপ চালান।
  • যদি num % i == 0 হয়:
    • যদি num/i == i (পারফেক্ট স্কয়ার), তবে একবার i গুণ করুন।
    • অন্যথায় i এবং num/i উভয় গুণ করুন।
  • মডুলো 1e9+7 বা বড় সংখ্যা এড়াতে মডুলো ব্যবহার করুন।

অ্যালগরিদম

Start
Function productfactor(num)
  product = 1
  for i = 1 to sqrt(num)
    if num % i == 0
      if num/i == i
        product = (product * i) % MAX
      else
        product = (product * i) % MAX
        product = (product * num/i) % MAX
  return product
Stop

উদাহরণ

#include <bits/stdc++.h>
#define MAX 1000000000
using namespace std;

long long productfactor(int num) {
    long long product = 1;
    for (int i = 1; i * i <= num; i++) {
        if (num % i == 0) {
            if (num / i == i)
                product = (product * i) % MAX;
            else {
                product = (product * i) % MAX;
                product = (product * num / i) % MAX;
            }
        }
    }
    return product;
}

int main() {
    int n = 9;
    cout << productfactor(n) << endl;
    return 0;
}

আউটপুট

27
  1. C/C++ প্রোগ্রাম: একটি সংখ্যার ইউনিক প্রাইম ফ্যাক্টরগুলোর গুণফল বের করা

  2. Frugal সংখ্যা চেক করা (C++)

  3. C++ দিয়ে পেন্টাটপ (Pentatope) সংখ্যা বের করা

  4. C++ প্রোগ্রাম: সংখ্যার ফ্যাক্টর (Factors) প্রদর্শন