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

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


টাস্ক হলো একটি সংখ্যা N-এর চারটি ফ্যাক্টর A, B, C, D থেকে সর্বোচ্চ গুণফল বের করা, শর্তে N = A + B + C + D।

ইনপুট − N=10

আউটপুট − 20

ব্যাখ্যা − ১০-এর ফ্যাক্টর: ১, ২, ৫, ১০। সর্বোচ্চ গুণফল: ৫×২×২×১=২০ এবং যোগফল ৫+২+২+১=১০।

ইনপুট − N=16

আউটপুট − 256

ব্যাখ্যা − ১৬-এর ফ্যাক্টর: ১, ২, ৪, ৮, ১৬। সর্বোচ্চ গুণফল: ৪×৪×৪×৪=২৫৬ এবং যোগফল ৪+৪+৪+৪=১৬।

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

  • Factors[] অ্যারে দিয়ে ফ্যাক্টরগুলো সংরক্ষণ করুন, K দিয়ে সাইজ ট্র্যাক করুন।
  • FindFactors() ফাংশনে ১ থেকে sqrt(N) পর্যন্ত লুপ চালিয়ে ফ্যাক্টর বের করুন।
  • যদি N%i==0 হয়, তবে i এবং N/i দুটোই ফ্যাক্টর (যদি সমান না হয়)।
  • Product() ফাংশনে চারটি নেস্টেড লুপ দিয়ে সব কোম্বিনেশন চেক করুন।
  • যদি চার ফ্যাক্টরের যোগফল N হয়, তবে গুণফল বের করে সর্বোচ্চটি রাখুন।

উদাহরণ

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

int Factors[30];
int K = 0;

int FindFactors(int N) {
    for (int i = 1; i * i <= N; i++) {
        if (N % i == 0) {
            if ((N / i) == i) {
                Factors[K++] = i;
            } else {
                Factors[K++] = N / i;
                Factors[K++] = i;
            }
        }
    }
}

int Product(int N) {
    int product = 0;
    int size = K;
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++)
            for (int k = 0; k < size; k++)
                for (int l = 0; l < size; l++) {
                    int sum = Factors[i] + Factors[j] + Factors[k] + Factors[l];
                    if (sum == N) {
                        int pro = Factors[i] * Factors[j] * Factors[k] * Factors[l];
                        if (pro > product) product = pro;
                    }
                }
    return product;
}

int main() {
    int N = 10;
    FindFactors(N);
    cout << Product(N);
    return 0;
}

আউটপুট

20
  1. C++-এ বিট পুনর্বিন্যাস করে সংখ্যা সর্বাধিক করা

  2. C++-এ অ্যারে-এর বিটওয়াইজ OR সর্বাধিক করা

  3. C++-এ সাবঅ্যারে ফ্লিপ করে ০-এর সংখ্যা সর্বাধিক করা

  4. C++-এ অ্যারেতে সর্বোচ্চ গুণফল দায়ক কোয়াড্রুপল (Quadruple) নির্ণয়