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

সি প্রোগ্রামিং-এ সুপার প্রাইম


একটি সুপার-প্রাইম সংখ্যা হল সেই সংখ্যা যা সব মৌলিক সংখ্যার ক্রমে মৌলিক সংখ্যা অবস্থানে অবস্থিত। এদের হাই-অর্ডার প্রাইম ও বলা হয়। এই সংখ্যাগুলো মৌলিক সংখ্যার ক্রমে এমন অবস্থানে থাকে যা নিজেও একটি মৌলিক সংখ্যা। কিছু সুপার প্রাইম সংখ্যা: ৩, ৫, ১১, ১৭…

উদাহরণস্বরূপ, ১৩ এর চেয়ে ছোট সব সুপার প্রাইম সংখ্যা বের করা যাক।

ইনপুট

13

আউটপুট

3, 5, 11.

ব্যাখ্যা − ১৩ এর চেয়ে ছোট সব মৌলিক সংখ্যা বের করলে পাই: ২, ৩, ৫, ৭, ১১, ১৩। এখন ২ একটি মৌলিক সংখ্যা, তাই ২য় অবস্থানের মৌলিক সংখ্যাটি সুপার প্রাইম। অর্থাৎ ৩ একটি সুপার প্রাইম। একইভাবে, ৩য় অবস্থানে ৫ এবং ৫য় অবস্থানে ১১ সুপার প্রাইম।

একটি দিয় প্রাইম সংখ্যার চেয়ে ছোট সব সুপার-প্রাইম বের করতে হলে প্রথমে সেই সংখ্যার চেয়ে ছোট সব মৌলিক সংখ্যা বের করে একটি অ্যারেতে রাখতে হয়। তারপর সেই অ্যারেতে থেকে কেবল उन्हीं সংখ্যাগুলো প্রিন্ট করতে হয় যাদের অবস্থান কোনো মৌলিক সংখ্যার সাথে মিলে যায়। উদাহরণস্বরূপ, ২য়, ৩য়, ৫য়, ৭য়, ১১য়, ১৩য়… অবস্থানের মৌলিক সংখ্যাগুলো বিবেচনা করতে হয়।

উদাহরণ

#include<iostream> using namespace std; bool SieveOfEratosthenes(int n, bool isPrime[]) {    isPrime[0] = isPrime[1] = false;    for (int i=2; i<=n; i++)       isPrime[i] = true;    for (int p=2; p*p<=n; p++) {       if (isPrime[p] == true) {          for (int i=p*2; i<=n; i += p)             isPrime[i] = false;       }    } } void superPrimes(int n) {    bool isPrime[n+1];    SieveOfEratosthenes(n, isPrime);    int primes[n+1], j = 0;    for (int p=2; p<=n; p++)       if (isPrime[p])    primes[j++] = p;    for (int k=0; k<j; k++)       if (isPrime[k+1])    cout << primes[k] << " "; } int main() {    int n = 343;    cout << "Super-Primes less than "<< n << " are :"<<endl;    superPrimes(n);    return 0; }

আউটপুট

Super-Primes less than 343 are : 3 5 11 17 31 41 59 67 83 109 127 157 179 191 211 241 277 283 331

  1. C++ প্রোগ্রাম: ফুল প্রাইম (Full Prime) চেক করা

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

  3. পাইথনে প্রাইম নম্বর চেক করা (Prime or Not)

  4. প্রাইম নম্বর চেক করার পাইথন প্রোগ্রাম