কম্পিউটার

একটি সংখ্যা প্রাথমিক প্রাইম কিনা তা পরীক্ষা করুন C++ এ


ধারণা

প্রদত্ত ধনাত্মক সংখ্যা n এর ক্ষেত্রে, কাজটি হল n একটি আদি মৌলিক সংখ্যা কিনা তা যাচাই করা। আমাদের 'হ্যাঁ' প্রিন্ট করতে হবে যদি n একটি আদি মৌলিক সংখ্যা হয় অন্যথায় 'না' প্রিন্ট করুন।

প্রাইমোরিয়াল প্রাইম − গণিতের সাপেক্ষে, প্রাইমোরিয়াল প্রাইমকে pN# + 1 বা pN# – 1 ফর্মের একটি মৌলিক সংখ্যা হিসাবে সংজ্ঞায়িত করা হয়, যেখানে pN# হল pN এর আদিম যেমন প্রথম N মৌলিক সংখ্যার গুণফল। পি>

ইনপুট − n =7

আউটপুট - হ্যাঁ

7 হল N=2 এর জন্য pN + 1 ফর্মের প্রাইমোরিয়াল প্রাইম, প্রাইমোরিয়াল হল 2*3 =6 এবং 6+1 =7।

ইনপুট − n =29

আউটপুট - হ্যাঁ

29 হল N=3 এর জন্য pN - 1 ফর্মের প্রাইমোরিয়াল প্রাইম, প্রাইমোরিয়াল হল 2*3*5 =30 এবং 30-1 =29৷

নিম্নলিখিতটিতে, প্রথম কয়েকটি প্রাইমোরিয়াল প্রাইম প্রদর্শিত হয় − 2, 3, 5, 7, 29, 31, 211, 2309, 2311, 30029

পন্থা

  • আমাদের ইরাটোস্থেনের চালনি প্রয়োগ করে পরিসরের সমস্ত মৌলিক সংখ্যা তৈরি করতে হবে।

  • N প্রাইম কিনা যাচাই করুন, যদি N প্রাইম না হয়, তাহলে No

    প্রিন্ট করুন
  • অন্যথায়, প্রথম প্রাইম (অর্থাৎ 2) থেকে শুরু করে পরবর্তী মৌলিক সংখ্যাকে গুণ করা শুরু করুন এবং গুণফল + 1 =N বা গুণফল – 1 =N বা না কিনা তা যাচাই করতে থাকুন

  • এটা দেখা গেছে যে যদি পণ্য+1=N বা পণ্য-1=N হয়, তাহলে N হল প্রাইমোরিয়াল প্রাইম অন্যথায় নয়।

উদাহরণ

// CPP program to check Primorial Prime
#include <bits/stdc++.h>
using namespace std;
#define MAX 10000
vector<int> arr1;
bool prime1[MAX];
void SieveOfEratosthenes1(){
   memset(prime1, true, sizeof(prime1));
   for (int p = 2; p * p < MAX; p++) {
      if (prime1[p] == true) {
         for (int i = p * 2; i < MAX; i += p)
            prime1[i] = false;
      }
   }
   for (int p = 2; p < MAX; p++)
      if (prime1[p])
         arr1.push_back(p);
}
bool isPrimorialPrime1(long n){
   // If n is not prime Number
   // return flase
   if (!prime1[n])
      return false;
   long long product1 = 1;
   int i = 0;
   while (product1 < n) {
      product1 = product1 * arr1[i];
      if (product1 + 1 == n || product1 - 1 == n)
         return true;
      i++;
   }
   return false;
}
// Driver code
int main(){
   SieveOfEratosthenes1();
   long n = 29;
   // Check if n is Primorial Prime
   if (isPrimorialPrime1(n))
      cout << "YES\n";
   else
      cout << "NO\n";
   return 0;
}

আউটপুট

YES

  1. একটি বড় সংখ্যা 11 দ্বারা বিভাজ্য বা C++ এ নয় তা পরীক্ষা করুন

  2. একটি নম্বর প্রাইম কি না তা পরীক্ষা করার জন্য C++ প্রোগ্রাম

  3. একটি সংখ্যা মৌলিক কি না তা পরীক্ষা করার জন্য C# প্রোগ্রাম

  4. পাইথনে একটি সংখ্যা প্রাইমোরিয়াল প্রাইম কিনা তা পরীক্ষা করুন