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

C++-এ সংখ্যাটি প্রাইমোরিয়াল প্রাইম (Primorial Prime) কিনা তা যাচাই করুন


কনসেপ্ট

দেওয়া ধনাত্মক সংখ্যা n সাপেক্ষে, n প্রাইমোরিয়াল প্রাইম কিনা তা যাচাই করুন। প্রাইমোরিয়াল প্রাইম হলে 'YES' প্রিন্ট করুন অন্যথায় 'NO'।

প্রাইমোরিয়াল প্রাইম − গাণিতিকভাবে, প্রাইমোরিয়াল প্রাইম হল এমন একটি প্রাইম সংখ্যা যা pN# + 1 বা pN# - 1 রূপে প্রকাশ করা যায়, যেখানে pN# হল প্রথম Nটি প্রাইম সংখ্যার গুণফল (প্রাইমোরিয়াল)।

ইনপুট − n = 7

আউটপুট − YES

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

ইনপুট − n = 29

আউটপুট − YES

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

প্রথম প্রাইমোরিয়াল প্রাইমগুলো: ২, ৩, ৫, ৭, ২৯, ৩১, ২১১, ২৩০৯, ২৩১১, ৩০০২৯

পদ্ধতি

  • Sieve of Eratosthenes দিয়ে সব প্রাইম সংখ্যা জেনারেট করুন।
  • N প্রাইম কিনা যাচাই করুন, না হলে No প্রিন্ট করুন।
  • অন্যথায়, প্রথম প্রাইম (২) থেকে গুণফল বের করুন এবং চেক করুন product+1=N বা product-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 (!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; 
} 

int main(){ 
    SieveOfEratosthenes1(); 
    long n = 29; 
    if (isPrimorialPrime1(n)) 
        cout << "YES\n"; 
    else 
        cout << "NO\n"; 
    return 0; 
}

আউটপুট

YES

  1. C++ প্রোগ্রাম: বড় সংখ্যা ১১ দিয়ে বিভাজ্য কিনা চেক (স্ট্রিং ইনপুট)

  2. C++ প্রোগ্রাম: প্রাইম সংখ্যা (Prime Number) যাচাই

  3. C#-এ সংখ্যা প্রাইম কিনা চেক করা

  4. পাইথনে প্রাইমোরিয়াল প্রাইম চেক করুন