কম্পিউটার

একটি সংখ্যাকে C++ এ 2টি ত্রিভুজাকার সংখ্যার যোগফল হিসাবে উপস্থাপন করা যায় কিনা তা পরীক্ষা করুন


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

একটি সংখ্যাকে C++ এ 2টি ত্রিভুজাকার সংখ্যার যোগফল হিসাবে উপস্থাপন করা যায় কিনা তা পরীক্ষা করুন

উদাহরণ থেকে আমরা দেখতে পাচ্ছি যে 1, 3, 6, 10 হল কিছু ত্রিভুজাকার সংখ্যা। দুটি ত্রিভুজাকার সংখ্যা (6, 10) এর যোগফল হিসাবে আমাদের একটি সংখ্যা N (বলুন 16) প্রকাশ করতে হবে।

পদ্ধতি খুব সহজ. আমাদের সমস্ত ত্রিভুজাকার সংখ্যা N থেকে কম পেতে হবে। এই মানগুলি থেকে একটি সেট তৈরি করুন। এখন আমাদের সেট থেকে X বলে একটি সংখ্যা নিতে হবে এবং সেটটিতে N – X উপস্থিত আছে কিনা তা পরীক্ষা করতে হবে, তারপর X কে দুটি ত্রিভুজাকার সংখ্যার যোগফল হিসাবে উপস্থাপন করা যেতে পারে।

উদাহরণ

#include <iostream>
#include <set>
using namespace std;
bool isSumTriangularNum(int n) {
   set<int> s;
   int i = 1;
   while (1) { //find and store all triangular numbers below n, and store into set
      int x = i * (i + 1) / 2;
      if (x >= n)
         break;
      s.insert(x);
      i++;
   }
   for (auto x : s)
   if (s.find(n - x) != s.end())
   return true;
   return false;
}
int main() {
   int num = 16;
   if(isSumTriangularNum(num)){
      cout << "Can be represented";
   }else{
      cout << "Cannot be represented";
   }
}

আউটপুট

Can be represented

  1. একটি সংখ্যাকে C++ এ a^b হিসাবে প্রকাশ করা যায় কিনা তা পরীক্ষা করুন

  2. একটি সংখ্যাকে C++ এ পরপর সংখ্যার যোগফল হিসাবে প্রকাশ করা যায় কিনা তা পরীক্ষা করুন

  3. একটি সংখ্যাকে C++ এ 2^x + 2^y হিসাবে প্রকাশ করা যায় কিনা তা পরীক্ষা করুন

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