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

C++ STL ব্যবহার করে নির্দিষ্ট রেঞ্জের প্রাইম সংখ্যা প্রিন্ট করা

এটি একটি নির্দিষ্ট রেঞ্জের মধ্যে প্রাইম সংখ্যা প্রিন্ট করার প্রোগ্রাম।

অ্যালগরিদম

শুরু
  stl নামক ইউজার ডিফাইন ডেটা টাইপ ডিক্লেয়ার করুন
  number ভেক্টর stl টাইপে ডিক্লেয়ার করুন
  a ভেরিয়েবল stl টাইপে ডিক্লেয়ার করুন
  Prime_Number ভেক্টর বুলিয়ান টাইপে ডিক্লেয়ার করুন
    Prime_Number[0] = false
    Prime_Number[1] = false
  b ইন্টিজার টাইপে ডিক্লেয়ার করুন
    b = sqrt(a) ইনিশিয়ালাইজ করুন
  for (stl pr=2; pr<=b; pr++)
    if (Prime_Number[pr]) হয়, তবে
      for (stl i=pr*2; i<=a; i += pr)
        Prime_Number[i] = false
  result ভেক্টর টাইপে ডিক্লেয়ার করুন
  for (int i=0; i

উদাহরণ কোড

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

typedef unsigned long long int stl;

vector<stl> number(stl a) {
    vector<bool> Prime_Number(a+1, true);
    Prime_Number[0] = false;
    Prime_Number[1] = false;
    int b = sqrt(a);
    for (stl pr = 2; pr <= b; pr++) {
        if (Prime_Number[pr]) {
            for (stl i = pr*2; i <= a; i += pr)
                Prime_Number[i] = false;
        }
    }
    vector<stl> result;
    for (int i = 0; i < a; i++)
        if (Prime_Number[i])
            result.push_back(i);
    return result;
}

bool remove_zero(stl i) {
    // ভেক্টর থেকে শূন্য মুছে ফেলতে ব্যবহৃত
    return i == 0;
}

vector<stl> Number_Range(stl First_Num, stl Last_Num) {
    vector<stl> s1 = number(First_Num); // ০ থেকে First_Num পর্যন্ত প্রাইম বের করুন
    vector<stl> s2 = number(Last_Num);  // ০ থেকে Last_Num পর্যন্ত প্রাইম বের করুন
    vector<stl> result(Last_Num - First_Num);
    set_difference(s2.begin(), s2.end(), s1.begin(), s2.end(), result.begin()); // দুটি ভেক্টরের সেট ডিফারেন্স
    vector<stl>::iterator itr = remove_if(result.begin(), result.end(), remove_zero); // অতিরিক্ত শূন্য মুছুন
    result.resize(itr - result.begin());
    return result;
}

int main(void) {
    stl First_Num = 20, Last_Num = 50;
    vector<stl> result = Number_Range(First_Num, Last_Num);
    cout << "The Prime Numbers from " << First_Num << " to " << Last_Num << " are: ";
    for (auto i : result)
        cout << i << ' ';
    return 0;
}

আউটপুট

The Prime Numbers from 20 to 50 are: 23 29 31 37 41 43 47
  1. C++ দিয়ে একটি রেঞ্জে দেওয়া ডিজিটাল রুট (Digital Root) वाले সংখ্যা গণনা

  2. C++-এ প্রদত্ত রেঞ্জ কোয়েরিতে প্রিফিক্স সম প্রাইম সংখ্যা বের করুন

  3. নির্দিষ্ট পরিসীমায় K সংখ্যক বিজোড় বিভাজক থাকা সংখ্যা খুঁজে বের করা C++-এ

  4. C++-এ BST-এ দিয়ে রেঞ্জের কী প্রিন্ট করুন O(1) স্পেসে