কম্পিউটার

C++ এ প্রদত্ত সংখ্যা N-এর ভাজকগুলির মধ্যে সবচেয়ে বড় ভাল সংখ্যাটি খুঁজুন


এই সমস্যায়, আমাদের একটি সংখ্যা N দেওয়া হয়েছে। আমাদের কাজ হল প্রদত্ত সংখ্যার ভাজকগুলির মধ্যে সবচেয়ে বড় ভাল সংখ্যাটি খুঁজে বের করা .

একটি ভাল সংখ্যা এমন একটি সংখ্যা যেখানে প্রতিটি সংখ্যা তার ডানদিকের সংখ্যার যোগফলের চেয়ে বড় (এর থেকে কম উল্লেখযোগ্য বিট)। উদাহরণস্বরূপ, 732 একটি ভাল সংখ্যা, 7> 3+2 এবং 3>2।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

Input : N = 15
Output : 15

ব্যাখ্যা

Divisors of 15 : 1, 3, 5, 15.

সমাধান পদ্ধতি

সমস্যার একটি সহজ সমাধান হল N-এর সমস্ত ভাজক খুঁজে বের করা। এবং তারা সবচেয়ে বড় ভাল সংখ্যা খুঁজে পায় যা সংখ্যার সমস্ত মৌলিক ভাজকের গুণফল হিসাবে বের করা হয়।

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include <bits/stdc++.h>
using namespace std;
int findLargestGoodNumber(int n){
   vector<int> primeFactors;
   int x = n;
   for (int i = 2; i * i <= n; i++) {
      if (x % i == 0) {
         primeFactors.push_back(i);
         while (x % i == 0) 
            x /= i;
      }
   }
   if (x > 1) 
      primeFactors.push_back(x);
   int goodNumber = 1;
   for (int i = 0; i < primeFactors.size(); i++)
      goodNumber = goodNumber * primeFactors[i];
   return goodNumber;
}
int main(){
   int n = 28;
   cout<<"The largest good Number in divisor of "<<n<<" is "<<findLargestGoodNumber(n); 
   return 0;
}

উদাহরণ

The largest good Number in divisor of 28 is 14

  1. C++ এ টারনারি অপারেটর ব্যবহার করে সবচেয়ে বড় সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. প্রদত্ত সংখ্যাটি অসীম ক্রমানুসারে উপস্থিত আছে নাকি C++ তে নেই তা খুঁজুন

  3. C++ এ প্রদত্ত সংখ্যাগুলি দিয়ে তৈরি করা যেতে পারে এমন বৃহত্তম সংখ্যাটি খুঁজুন

  4. একটি প্রদত্ত স্ট্রিং-এর পারমুটেশনের সংখ্যা খুঁজে পেতে C++ প্রোগ্রাম