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

C++-এ দেয়া রেঞ্জে প্রাইম নম্বরের ম্যাক্সিমাম পার্থক্যের কোয়েরি


এই সমস্যাতে, আমাদের Q সংখ্যক কোয়েরি দেওয়া আছে যাতে দুটি মান L এবং R থাকে। আমাদের কাজ হলো C++-এ দেয়া রেঞ্জে প্রাইম নম্বরের ম্যাক্সিমাম পার্থক্য বের করার প্রোগ্রাম লিখা।

সমস্যা বর্ণনা: এখানে প্রতিটি কোয়েরিতে দুটি মান L এবং R দেওয়া থাকে। আমাদেরকে দেওয়া রেঞ্জের মধ্যে সবচেয়ে ছোট এবং সবচেয়ে বড় প্রাইম নম্বরের পার্থক্য বের করতে হবে।

উদাহরণ দিয়ে বুঝি,

ইনপুট

Q = 2 
2 45 
14 16 
41 0

আউটপুট

ব্যাখ্যা

কোয়েরি ১-এ, দেওয়া রেঞ্জের মধ্যে সবচেয়ে ছোট প্রাইম নম্বর ২ এবং সবচেয়ে বড় ৪৩। পার্থক্য ৪৩ - ২ = ৪১।

কোয়েরি ২-এ, দেওয়া রেঞ্জে কোনো প্রাইম নম্বর নেই, তাই আউটপুট ০।

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

সমস্যা সমাধানের জন্য, আমরা ১০০০০৫ পর্যন্ত প্রাইম নম্বর들의 একটি অ্যারে তৈরি করব। তারপর L-র চেয়ে বড় প্রথম প্রাইম এবং R-এর চেয়ে ছোট প্রথম প্রাইম বের করে তাদের পার্থক্য বের করব।

সমাধানের কোড উদাহরণ,

উদাহরণ

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

bool primeNumber[100005] ; 

void findPrimes(){ 
    memset(primeNumber, true, sizeof(primeNumber)); 
    for (int i = 2; i * i < 100005; i++) { 
        if (primeNumber[i]) { 
            for (int j = i + i; j < 100005; j += i) 
                primeNumber[j] = false; 
        } 
    } 
} 

int findPrimeInRange(int L, int R) { 
    int LPrime = 0; 
    int RPrime = 0; 
    for(int i = L; i <= R; i++){ 
        if(primeNumber[i] == true){ 
            LPrime = i; 
            break; 
        } 
    } 
    for(int j = R; j >= L; j--){ 
        if(primeNumber[j] == true){ 
            RPrime = j; 
            break; 
        } 
    } 
    return (RPrime - LPrime); 
} 

int main() { 
    int Q = 3; 
    int query[Q][2] = {{4, 15}, {32, 37}, {54, 1100}}; 
    findPrimes(); 
    for (int i = 0; i < Q; i++) 
        cout<<"For query "<<(i+1)<<": The maximum difference between primes numbers is "<<findPrimeInRange(query[i][0], query[i][1])<<"\n"; 
    return 0; 
}

আউটপুট

For query 1: The maximum difference between primes numbers is 8 
For query 2: The maximum difference between primes numbers is 0 
For query 3: The maximum difference between primes numbers is 1038

  1. ১ থেকে n পর্যন্ত মৌলিক সংখ্যাগুলোর গুণফল বের করা C++-তে

  2. C++ প্রোগ্রাম: সেগমেন্টেড ছাঁনি বাস্তবায়ন করে নির্দিষ্ট পরিসরের মৌলিক সংখ্যা তৈরি

  3. C++ প্রোগ্রাম: অ্যাটকিনের ছাঁনি বাস্তবায়ন করে নির্দিষ্ট পরিসরের মৌলিক সংখ্যা তৈরি

  4. C++ প্রোগ্রাম: এরাটোস্থেনিসের ছাঁনি বাস্তবায়ন করে নির্দিষ্ট পরিসরের মৌলিক সংখ্যা তৈরি