কম্পিউটার

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


ধরুন আমাদের একটি সংখ্যা আছে। আমাদের এটিকে দুটি প্রচুর সংখ্যার যোগফল হিসাবে প্রকাশ করতে হবে, যদি হ্যাঁ, সংখ্যাগুলি প্রিন্ট করুন, অন্যথায় -1 প্রিন্ট করুন। একটি সংখ্যাকে বলা হয় প্রচুর সংখ্যা হল সংখ্যার সমস্ত সঠিক ভাজকের যোগফল, যোগফল(n) দ্বারা নির্দেশিত সংখ্যার মানের থেকে বড়৷

এটি সমাধান করার জন্য, আমরা একটি সেটে সমস্ত প্রচুর সংখ্যা সংরক্ষণ করব, এবং প্রদত্ত সংখ্যা n এর জন্য, i =1 থেকে n এর জন্য একটি লুপ চালান এবং n এবং (n – i) প্রচুর আছে কি না তা পরীক্ষা করুন৷

উদাহরণ

#include <iostream>
#include <set>
#define N 100005
using namespace std;
set<int> getAbundantSet() {
   set<int> abundant_set;
   for (int i = 1; i < N; i++) {
      int sum = 1;
      for (int j = 2; j * j <= i; j++) {
         if (i % j == 0) {
            sum += j;
            if (i / j != j)
            sum += i / j;
         }
      }
      if (sum > i)
         abundant_set.insert(i);
   }
   return abundant_set;
}
void representSumAbundant(int number){
   set<int> abundant_set = getAbundantSet();
   for (int i = 1; i <= number; i++) {
      if (abundant_set.count(i) && abundant_set.count(number - i)) {
         cout << i << " " << number - i;
         return;
      }
   }
   cout << -1;
}
int main() {
   int n = 30;
   representSumAbundant(n);
}

আউটপুট

12 18

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

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

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

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