কম্পিউটার

স্বতন্ত্র সংখ্যার সর্বাধিক যোগফল যেমন C++ এ এই সংখ্যাগুলির LCM হল N


এই সমস্যায়, আমরা একটি সংখ্যা N। আমাদের কাজ হল স্বতন্ত্র সংখ্যার সর্বাধিক যোগফল খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা যাতে এই সংখ্যাগুলির LCM C++ এ N হয়।

সমস্যা বর্ণনা

আমাদের N সংখ্যার সমস্ত গুণনীয়কের যোগফল খুঁজে বের করতে হবে। এবং সর্বাধিক যোগফল বের করতে সমস্ত স্বতন্ত্র যোগ করতে হবে।

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

ইনপুট

N = 12

আউটপুট

28

ব্যাখ্যা

All distinct factors of N are 1, 2, 3, 4, 6, 12.
Sum = 1 + 2 + 3 + 4 + 6 + 12 = 28

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

একটি সহজ সমাধান হল সংখ্যার সমস্ত ফ্যাক্টর খুঁজে বের করা এবং তারপর ফলাফল বের করার জন্য সমস্ত স্বতন্ত্র ফ্যাক্টর যোগ করা।

এর জন্য, আমরা N-এর বর্গমূল পর্যন্ত পুনরাবৃত্তি করব। এবং সংখ্যাটি N ভাগ করে কিনা তা পরীক্ষা করে দেখুন। যদি হ্যাঁ, তা স্বতন্ত্র কিনা তা পরীক্ষা করে দেখুন, হ্যাঁ থাকলে সংখ্যা এবং ভাগ ভাগফল যোগ করুন অন্যথায় সংখ্যাটি যোগ করুন। চূড়ান্ত সর্বোচ্চ যোগ করুন।

উদাহরণ

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

#include <iostream>
using namespace std;
int calcMaxSumForLCM(int N){
   int maxSum = 0;
   for (int i = 1; i*i <= N; i++){
      if (N%i == 0){
         if (i == (N/i))
            maxSum = maxSum + i;
         else
            maxSum = maxSum + i + (N/i);
      }
   }
   return maxSum;
}
int main(){
   int N = 17;
   cout<<"The sum of distinct numbers such that LCM if these numbers is "<<N<<" is "<<calcMaxSumForLCM(N);
   return 0;
}

আউটপুট

The sum of distinct numbers such that LCM if these numbers is 17 is 18

  1. সর্বাধিক যোগফল যাতে C++ প্রোগ্রামে কোন দুটি উপাদান সংলগ্ন বিকল্প পদ্ধতি নয়

  2. সর্বাধিক পরবর্তী যোগফল যেমন C++ প্রোগ্রামে কোনো তিনটি পরপর নয়

  3. একটি বাইনারি ট্রিতে সর্বাধিক সাব-ট্রির যোগফল যেমন C++ প্রোগ্রামে সাব-ট্রিও একটি BST

  4. বৃত্তাকার অ্যারেতে সর্বাধিক যোগফল যাতে C++ এ দুটি উপাদান সংলগ্ন থাকে না