কম্পিউটার

C++ এ N এর থেকে কম বা সমান সমস্ত সেমি-প্রাইম নম্বর প্রিন্ট করুন


>

এই সমস্যাটি সমাধান করার আগে, আসুন জেনে নেওয়া যাক সেমি-প্রাইম সংখ্যা কী।

একটি আধা-প্রধান সংখ্যা একটি সংখ্যা যার মান দুটি স্বতন্ত্র মৌলিক সংখ্যার গুণফল।

একটি উদাহরণ নেওয়া যাক,

21 =3*7 একটি সেমিপ্রাইম সংখ্যা।

25 =5*5 একটি সেমিপ্রাইম সংখ্যা নয়।

এখন, n এর থেকে কম বা সমান সেমিপ্রাইম সংখ্যার একটি উদাহরণ নেওয়া যাক।

Input: N = 15
Output: 6 10 14 15

এই সমস্যাটি সমাধান করার জন্য, আমাদের প্রতিটি সংখ্যাকে N এর সমান নিতে হবে এবং পরীক্ষা করতে হবে যে এটিতে ঠিক দুটি স্বতন্ত্র মৌলিক গুণনীয়ক আছে কিনা।

টিপ − আমরা আমাদের অ্যালগরিদম 6 থেকে শুরু করতে পারি কারণ ক্ষুদ্রতম সেমি-প্রাইম সংখ্যা হল 6৷

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
vector<int>generateSemiPrimeNumbers(int n){
   int index[n + 1];
   for (int i = 1; i <= n; i++)
      index[i] = i;
   int countDivision[n + 1];
   for (int i = 0; i < n + 1; i++)
      countDivision[i] = 2;
   for (int i = 2; i <= n; i++) {
      if (index[i] == i && countDivision[i] == 2) {
         for (int j = 2 * i; j <= n; j += i) {
            if (countDivision[j] > 0) {
               index[j] = index[j] / i;
               countDivision[j]--;
            }
         }
      }
   }
   vector<int> semiPrime;
   for (int i = 2; i <= n; i++) {
      if (index[i] == 1 && countDivision[i] == 0) semiPrime.push_back(i);
   }
   return semiPrime;
}
int main(){
   int n = 15;
   cout<<"Semi-prime numbers less that or equal to "<<n<<"are :\n";
   vector<int>semiPrime = generateSemiPrimeNumbers(n);
   for (int i = 0; i < semiPrime.size(); i++)
      cout<<semiPrime[i]<<"\t";
   return 0;
}

আউটপুট

15 এর থেকে কম বা সমান সেমি-প্রাইম সংখ্যা হল −

6 10 14 15

  1. C++-এ N-এর থেকে কম বা সমান 2 বা 3 বা 5-এর বহুগুণ খুঁজুন

  2. C++ এ m এর থেকে কম বা সমান দৈর্ঘ্যের সর্বাধিক সমষ্টি বিন্যাস খুঁজুন

  3. C++ এ একটি অ্যারেতে সমস্ত মৌলিক সংখ্যার গুণফল

  4. C++ এ একটি মিন হিপে x মানের চেয়ে কম সব নোড প্রিন্ট করুন