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

C++ একটি সংখ্যাকে সর্বোচ্চ সম্ভব প্রাইম সংখ্যাগুলোর যোগফল হিসেবে প্রকাশ করুন


একটি সমস্যা আলোচনা করব যেখানে আমাদের একটি সংখ্যা N দেওয়া আছে, এবং আমাদের এই সংখ্যাকে সর্বোচ্চ প্রাইম সংখ্যাগুলোর যোগফলে ভাগ করতে হবে। উদাহরণস্বরূপ:

Input: N = 7 Output: 2 2 3 Explanation: 7 কে দুটি ২ এবং একটি ৩-এর যোগফল হিসেবে প্রকাশ করা যায় যা সর্বোচ্চ সম্ভব প্রাইম সংখ্যা। Input : N = 17 Output: 2 2 2 2 2 2 2 3

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

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

কিন্তু এখানে, আমাদের সর্বোচ্চ সংখ্যক প্রাইম সংখ্যা খুঁজে বের করতে হবে, এবং সেজন্য আমাদের ন্যূনতম প্রাইম সংখ্যাগুলো নিতে হবে, অর্থাৎ ২ এবং ৩। আমরা যেকোনো সংখ্যাকে ২ এবং ৩-এর যোগফলে ফর্ম করতে পারি।

  • সংখ্যাটি জোড় (even) কিনা চেক করুন; যদি জোড় হয়, তবে এটি ( N/2 ) সংখ্যক ২-এর যোগফলে ফর্ম করা যায়।

  • যদি বিজোড় (odd) হয়, তবে এটি একটি ৩ এবং [ (N-3) / 2 ] সংখ্যক ২-এর যোগফলে ফর্ম করা যায়।

  • এভাবে আমরা N কে সর্বোচ্চ সংখ্যক প্রাইমের যোগফলে প্রকাশ করতে পারি।

উদাহরণ

 #include <bits/stdc++.h> using namespace std; int main(){    int N = 7;    // চেক করুন N বিজোড় কিনা,    // হ্যাঁ হলে ৩ প্রিন্ট করুন    // এবং N থেকে ৩ বিয়োগ করুন।    if (N & 1 == 1) {       cout << "3 +";       N -= 3;    }    // // ২ প্রিন্ট এবং বিয়োগ করুন    // যতক্ষণ N ০ হয় না।    while (N!=2) {       cout << " 2 +";       N -= 2;    }    cout << " 2";    return 0; } 

আউটপুট

3 + 2 + 2

উপসংহার

এই টিউটোরিয়ালে, আমরা একটি সংখ্যাকে সর্বোচ্চ সংখ্যক প্রাইম সংখ্যার যোগফল হিসেবে প্রকাশ করার কথা আলোচনা করেছি। আমরা একটি সহজ পদ্ধতি আলোচনা করেছি সংখ্যাকে ২ এবং ৩-এর যোগফল হিসেবে প্রকাশ করে। আমরা এই সমস্যার জন্য C++ প্রোগ্রামও আলোচনা করেছি যা আমরা C, Java, Python ইত্যাদি প্রোগ্রামিং ভাষায়ও করতে পারি। আশা করি আপনি এই টিউটোরিয়ালটিকে উপকারী পাবেন।


  1. সি++-এ ডাডেনি নম্বর

  2. ফিবোনাচ্চি সংখ্যাগুলোর বর্গের যোগফল C++-এ

  3. C++-এ সিঙ্গলি লিংকড লিস্ট-এ ন্যূনতম এবং সর্বোচ্চ প্রাইম নম্বর বের করা

  4. C++-এ একটি সংখ্যা দুটি প্রাইমের যোগফল হিসেবে এক্সপ্রেস করা যায় কিনা চেক করা