কম্পিউটার

সর্বাধিক প্রাইম যার যোগফল C++ এ দেওয়া N এর সমান


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

এর সমান

এখানে, আমরা মৌলিক সংখ্যার সর্বোচ্চ সংখ্যা খুঁজে পাব যেগুলো যোগ করলে সংখ্যার সমান হবে।

মৌলিক সংখ্যা হল সেই সংখ্যা যেগুলোকে নিজের বা এক দ্বারা ভাগ করা যায়।

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

ইনপুট − N =9

আউটপুট − 4

ব্যাখ্যা

9 can be repressed as the sum of prime numbers in the following ways:
2, 2, 2, 3
3, 3, 3
2, 2, 5
2, 7
Out of these the maximum number of primes used is 4.

যোগফল তৈরি করতে কত ক্ষুদ্রতম মৌলিক সংখ্যা যোগ করা যেতে পারে তার উপর ভিত্তি করে ব্যবহৃত মৌলিক সংখ্যার সর্বোচ্চ সংখ্যা হবে।

সুতরাং, ক্ষুদ্রতম মৌলিক সংখ্যা হল 2। এবং পরপর বৃহত্তর মৌলিক সংখ্যা হল 3, যা বিজোড়।

সুতরাং, গণনা সর্বাধিক হবে যদি আমরা যোগফল গণনা করার সময় শুধুমাত্র 2 এবং 3 ব্যবহার করি। এর ভিত্তিতে আমরা সমস্যাটিকে দুটি ক্ষেত্রে ভাগ করতে পারি −

কেস 1 − যদি N জোড় হয়, তাহলে যোগফলের সমস্ত মৌলিক সংখ্যা হবে 2। সুতরাং, গণনা হবে n/2।

কেস 2 − যদি N বিজোড় হয়, তাহলে সমষ্টির সমস্ত মৌলিক সংখ্যা হবে 2 এর একটি ছাড়া যা 3 হবে। সুতরাং, গণনা হবে (n-1/2)।

উদাহরণ

সর্বাধিক প্রাইম খুঁজে বের করার প্রোগ্রাম যার যোগফল C++ এ দেওয়া N এর সমান

#include <iostream>
using namespace std;
int maxPrimeCount(int n){
   //For odd case the result will same as (n-1)/2
   return n / 2;
}
int main(){
   int n = 9;
   cout<<"The maximum number of primes whose sum is equal to "<<n<<" is "<<maxPrimeCount(n);
   return 0;
}

আউটপুট

The maximum number of primes whose sum is equal to 9 is 4

  1. দুটি BST থেকে জোড়া গণনা করুন যার যোগফল C++ এ একটি প্রদত্ত মানের x এর সমান

  2. C++ এ একটি প্রদত্ত পরিসরের জন্য সর্বাধিক উপসর্গ-সমষ্টি

  3. ন্যূনতম সংখ্যার একক সংখ্যার প্রাইম প্রয়োজন যার যোগফল C++ এ N এর সমান

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