এই সমস্যায়, আমাদের একটি সংখ্যা দেওয়া হয়েছে। আমাদের কাজ হল C++ এ N হিসাবে LCM সহ স্বতন্ত্র সংখ্যার সর্বাধিক যোগফল খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা।
সমস্যা বর্ণনা
এখানে, আমাদের সর্বনিম্ন সাধারণ মাল্টিপল (LCM) হিসাবে N আছে এমন সর্বাধিক সংখ্যার যোগফল খুঁজে বের করতে হবে।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট
N = 10
আউটপুট
18
ব্যাখ্যা
Maximum sum with LCM 10 is 1 + 2 + 5 + 10 = 18
সমাধান পদ্ধতি
সমস্যার একটি সহজ সমাধান হল এই ধারণাটি ব্যবহার করা যে আমরা যদি N সংখ্যাটিকে LCM হিসাবে চাই, তাহলে আমাদের N-এর সমস্ত স্বতন্ত্র ভাজক নিতে হবে। এবং maxSum পেতে তাদের যোগ করতে হবে।
এর জন্য আমরা N-এর সমস্ত গুণনীয়ক খুঁজে পাব। এবং তারপরে সেগুলি যোগ করুন, এটিকে সর্বাধিক দেওয়া হবে কারণ আমরা সমস্ত সংখ্যা বিবেচনা করেছি যেগুলি LCM-কে N হতে অবদান রাখতে পারে।
উদাহরণ
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
নেমস্পেস std;int calcFactorSum(int N){ int maxSum =0 ব্যবহার করে#include <iostream> using namespace std; int calcFactorSum(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 = 42; cout<<"The sum of distinct numbers with LCM as "<<N<<" is "<<calcFactorSum(N); return 0; }
আউটপুট
The sum of distinct numbers with LCM as 42 is 96