কম্পিউটার

C++ এ প্রদত্ত পরিসরে বৃহত্তম যমজ খুঁজুন


এই সমস্যায়, আমাদের lValue এবং hValue দুটি মান দেওয়া হয়েছে। আমাদের কাজ হল প্রদত্ত পরিসরে সবচেয়ে বড় যমজ খুঁজে পাওয়া .

দুটি সংখ্যাকে যমজ সংখ্যা বলা হয় যদি উভয়টি মৌলিক সংখ্যা হয় এবং তাদের মধ্যে পার্থক্য 2 হয়।

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

Input : lValue = 65, rValue = 100
Output : 71, 73

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

সমস্যার একটি সহজ সমাধান হল rValue - 2 থেকে lValue এ লুপ করা এবং যমজ সন্তানের জন্য i এবং (i+2) এর প্রতিটি জোড়া চেক করা এবং প্রথম যমজটি প্রিন্ট করা।

আরেকটি পদ্ধতি পরিসরে সমস্ত মৌলিক সংখ্যা খুঁজে বের করার মাধ্যমে এবং তারপর i এবং (i+2) এর বৃহত্তম জোড়ার জন্য পরীক্ষা করুন যেগুলি মৌলিক এবং

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include <bits/stdc++.h>
using namespace std;
void findLargestTwins(int lValue, int uValue) {
   bool primes[uValue + 1];
   memset(primes, true, sizeof(primes));
   primes[0] = primes[1] = false;
   for (int p = 2; p <= floor(sqrt(uValue)) + 1; p++) { 
      if (primes[p]) {
         for (int i = p * 2; i <= uValue; i += p)
         primes[i] = false;
      }
   }
   int i;
   for (i = uValue; i >= lValue; i--) {
      if (primes[i] && (i - 2 >= lValue && primes[i - 2] == true)) {
         break;
      }
   }
   if(i >= lValue )
      cout<<"Largest twins in given range: ("<<(i-2)<<", "<<i<<")";
   else 
      cout<<"No Twins possible";
}
int main(){
   int lValue = 54;
   int uValue = 102;
   findLargestTwins(lValue, uValue);
   return 0;
}

আউটপুট

Largest twins in given range: (71, 73)

  1. C++ এ প্রদত্ত সংখ্যা এবং অঙ্কের যোগফল সহ সবচেয়ে বড় সংখ্যাটি খুঁজুন

  2. C++ এ 2, 3 এবং 5 এর বৃহত্তম গুণিতক খুঁজুন

  3. C++ এ প্রদত্ত সংখ্যা N-এর ভাজকগুলির মধ্যে সবচেয়ে বড় ভাল সংখ্যাটি খুঁজুন

  4. একটি প্রদত্ত বাইনারি ট্রিতে বৃহত্তম BST সাবট্রি খুঁজুন - C++ এ 1 সেট করুন