কনসেপ্ট
একটি পূর্ণসংখ্যা N দেওয়া আছে। N-এর সব গুণনীয়ক বের করুন। চারটি গুণনীয়ক বেছে নিন যাদের যোগফল N এবং গুণফল সর্বোচ্চ। অসম্ভব হলে "Not possible" প্রিন্ট করুন। চারটি গুণনীয়ক সমান হতে পারে।
ইনপুট
24
আউটপুট
All the factors are -> 1 2 4 5 8 10 16 20 40 80 Product is -> 160000
গুণনীয়ক ২০ চারবার বেছে নিলে: ২০+২০+২০+২০=৮০ (নোট: ইনপুট ২৪ কিন্তু আউটপুটে ৮0। সম্ভবত উদাহরণে N=80 ব্যবহার করা হয়েছে)।
পদ্ধতি
- ১ থেকে sqrt(N) পর্যন্ত লুপ করে গুণনীয়ক বের করুন এবং ভেক্টরে রাখুন।
- ভেক্টর সর্ট করুন।
- তিনটি নেস্টেড লুপ দিয়ে তিনটি গুণনীয়ক বেছে নিন, চতুর্থটি = N - (সুম) হিসাব করুন।
- চতুর্থটি যদি গুণনীয়ক হয় এবং গুণফল বড় হয় তবে আপডেট করুন।
উদাহরণ (C++ কোড)
// C++: N-এর চার গুণনীয়ক যাদের যোগফল N এবং গুণফল সর্বোচ্চ
#include <bits/stdc++.h>
using namespace std;
void findfactors2(int n1) {
vector vec2;
for (int i=1; i*i<=n1; i++)
if (n1%i==0) { vec2.push_back(i); vec2.push_back(n1/i); }
sort(vec2.begin(), vec2.end());
cout << "All the factors are -> ";
for (int x:vec2) cout << x << " "; cout << endl;
int maxProduct2=1; bool flag2=1;
for (int i=0; i " << maxProduct2 << endl;
else cout << "Not possible" << endl;
}
int main() { int n1=80; findfactors2(n1); return 0; }
আউটপুট
All the factors are -> 1 2 4 5 8 10 16 20 40 80 Product is -> 160000