কম্পিউটার

C++ এ N পর্যন্ত সমস্ত প্রোথ প্রাইম প্রিন্ট করুন


এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা N দেওয়া হয়েছে এবং আমাদের সমস্ত প্রথপ্রাইম সংখ্যা প্রিন্ট করতে হবে N এর থেকে কম বা সমান।

প্রথ প্রাইম নম্বর

একটি প্রোথ মৌলিক সংখ্যা একটি ধনাত্মক পূর্ণসংখ্যা যার মান n =k * হিসাবে উপস্থাপন করা যেতে পারে 2 n + 1. যেখানে k একটি বিজোড় ধনাত্মক পূর্ণসংখ্যা এবং n একটি ধনাত্মক পূর্ণসংখ্যা এবং উভয়ই 2 n কে সন্তুষ্ট করে> কে।

উদাহরণ − 3, 5, 13…..

বিষয়টি আরও ভালোভাবে বোঝার জন্য একটি উদাহরণ নেওয়া যাক -

Input: N = 23
Output: 3, 5, 13, 17.

এর জন্য, আমরা সমস্ত মৌলিক সংখ্যা N-এর চেয়ে কম খুঁজে পাব ) এবং প্রতিটি মৌলিক সংখ্যা প্রথ নম্বর কিনা তা পরীক্ষা করুন অথবা না. এবং সমস্ত প্রথ নম্বর প্রিন্ট করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int prime[1000];
void SieveOfEratosthenes(int n){
   for (int i = 1; i <= n + 1; i++)
      prime[i] = true;
   prime[1] = false;
   for (int p = 2; p * p <= n; p++) {
      if (prime[p] == true) {
         for (int i = p * p; i <= n; i += p)
            prime[i] = false;
      }
   }
}
bool isTwosExponent(int n){
   return (n && !(n & (n - 1)));
}
bool isaProthNumber(int n){
   int k = 1;
   while (k < (n / k)) {
      if (n % k == 0) {
         if (isTwosExponent(n / k))
            return true;
      }
      k = k + 2;
   }
   return false;
}
bool isaProthPrime(int n){
   if (isaProthNumber(n - 1)) {
      if(prime[n])
         return true;
      else
         return false;
   }
   else
      return false;
}
int main(){
   int n = 23;
   cout<<"Proth Prime Numbers less than or equal to "<<n<<" are :\n";
   SieveOfEratosthenes(n);
   for (int i = 1; i <= n; i++)
      if (isaProthPrime(i))
         cout<<i<<"\t";
   return 0;
}

আউটপুট

প্রোথ প্রাইম সংখ্যা 23 এর থেকে কম বা সমান −

3 5 13 17

  1. C++ এ একটি বাইনারি ট্রিতে সমস্ত পূর্ণ নোড প্রিন্ট করুন

  2. একটি বাইনারি গাছের সমস্ত অভ্যন্তরীণ নোড C++ এ প্রিন্ট করুন

  3. C++ এ প্রদত্ত নোড থেকে k দূরত্বে সমস্ত নোড প্রিন্ট করুন

  4. C++-এ K পাতা সহ একটি বাইনারি ট্রিতে সমস্ত নোড প্রিন্ট করুন