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

দেওয়া রেঞ্জে সবচেয়ে বড় টুইন প্রাইম বের করা (C++)


সমস্যা বিবরণ

দুটি মান lValue এবং hValue দেওয়া আছে। আমাদের কাজ হল সেই রেঞ্জের মধ্যে সবচেয়ে বড় টুইন প্রাইম (দুই প্রাইম যাদের পার্থক্য ২) বের করা।

উদাহরণ

ইনপুট: lValue = 65, rValue = 100
আউটপুট: 71, 73

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

Sieve of Eratosthenes দিয়ে রেঞ্জের সব প্রাইম বের করে, তারপর hValue থেকে নিচে নেমে টুইন প্রাইম খুঁজা।

প্রোগ্রাম উদাহরণ

#include <bits/stdc++.h>
using namespace std;

void findLargestTwins(int l, int u) {
    vector<bool> prime(u+1, true);
    prime[0]=prime[1]=false;
    for(int p=2; p*p<=u; p++)
        if(prime[p])
            for(int i=p*2; i<=u; i+=p) prime[i]=false;
    int i;
    for(i=u; i>=l; i--)
        if(prime[i] && i-2>=l && prime[i-2]) break;
    if(i>=l) cout << "Largest twins: (" << i-2 << ", " << i << ")";
    else cout << "No twins";
}

int main() {
    findLargestTwins(54, 102);
    return 0;
}

আউটপুট

Largest twins: (71, 73)
  1. দেওয়া অঙ্ক সংখ্যা ও অঙ্ক যোগফলের সাথে সর্বোচ্চ সংখ্যা বের করা (C++)

  2. অ্যারে থেকে ২, ৩, ৫ দ্বারা বিভাজ্য সর্বোচ্চ সংখ্যা বের করা (C++)

  3. একটি সংখ্যার ভাজকগুলোর মধ্যে সবচেয়ে বড় Good Number বের করা (C++)

  4. বাইনারি ট্রিয়ে সর্বোচ্চ BST সাবট্রি বের করা (C++)