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

সি++-এ LCM N হওয়া স্বতন্ত্র সংখ্যাগুলোর সর্বোচ্চ যোগফল


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

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

আমাদের সংখ্যা N-এর সব ফ্যাক্টর বের করতে হবে। এবং সব স্বতন্ত্র ফ্যাক্টর যোগ করে সর্বোচ্চ যোগফল বের করতে হবে।

উদাহরণ দিয়ে বুঝতে চেষ্টা করি,

ইনপুট

N = 12

আউটপুট

28

ব্যাখ্যা

N-এর সব স্বতন্ত্র ফ্যাক্টর হল 1, 2, 3, 4, 6, 12। যোগফল = 1 + 2 + 3 + 4 + 6 + 12 = 28

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

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

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

উদাহরণ

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

#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. সি++-এ অ্যাডজেসেন্ট এলিমেন্ট নেই এমন সর্বোচ্চ সাবসিকোয়েন্স যোগফল (অল্টারনেট মেথড)

  2. লাগাতার তিনটি না হলে সর্বোচ্চ সাবসিকোয়েন্স যোগফল (C++ প্রোগ্রাম)

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

  4. C++-এ সার্কুলার অ্যারেতে আঁচবিক উপাদান ছাড়া সর্বোচ্চ যোগফল বের করার পদ্ধতি