কম্পিউটার

C++ এ প্রদত্ত রেঞ্জে মৌলিক সংখ্যার মধ্যে সর্বোচ্চ পার্থক্যের জন্য প্রশ্ন


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

সমস্যার বিবরণ:এখানে, প্রতিটি কোয়েরিতে, আমাদের দুটি মান দেওয়া হয়েছে L এবংR। আমাদের সর্বোচ্চ পার্থক্য খুঁজে বের করতে হবে অর্থাৎ প্রদত্ত পরিসরের মধ্যে সবচেয়ে বড় এবং ক্ষুদ্রতম মৌলিক সংখ্যার মধ্যে পার্থক্য।

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

ইনপুট

Q = 2
2 45
14 16
41 0

আউটপুট

ব্যাখ্যা

ক্যোয়ারী 1 এর জন্য, প্রদত্ত ব্যাপ্তির মধ্যে সবচেয়ে ছোট মৌলিক সংখ্যা হল 2 এবং সবচেয়ে বড় সংখ্যা হল 43৷ পার্থক্য 43 - 2 =41৷

ক্যোয়ারী 2 এর জন্য, প্রদত্ত পরিসরের মধ্যে কোন মৌলিক সংখ্যা নেই, তাই আউটপুট হল 0৷

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

To solve the problem, we will create an array of prime numbers till 100005
which is the given range. Then, we will find the first prime number which is
greater than L and the first prime number which is smaller than R . and find
their difference.

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

উদাহরণ

#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. C++ এ 1 থেকে n এর মধ্যে মৌলিক সংখ্যার গুণফল বের করুন

  2. প্রদত্ত পরিসরের মধ্যে প্রাইম নম্বর তৈরি করতে সেগমেন্টেড চালনি বাস্তবায়নের জন্য C++ প্রোগ্রাম

  3. প্রদত্ত পরিসরের মধ্যে প্রাইম নম্বর তৈরি করতে অ্যাটকিনের চালনি বাস্তবায়নের জন্য C++ প্রোগ্রাম

  4. প্রদত্ত পরিসরের মধ্যে প্রাইম নম্বর তৈরি করতে ইরাটোসথেনিসের চালনি প্রয়োগ করার জন্য C++ প্রোগ্রাম