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

C++-এ প্রাইম নাম্বার খুঁজে বের করার দ্রুততম অ্যালগরিদম কোনটি?


এরাটোস্থেনিসের ছলনি (Sieve of Eratosthenes) n ছোট প্রাইম নাম্বার খুঁজে বের করার সবচেয়ে দক্ষ পদ্ধতির একটি যখন n প্রায় ১০ মিলিয়ন পর্যন্ত ছোট।

এরাটোস্থেনিসের ছলনি প্রদর্শন করে একটি প্রোগ্রাম নিচে দেওয়া হল।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

void SieveOfEratosthenes(int num) {
    bool pno[num + 1];
    memset(pno, true, sizeof(pno));
    for (int i = 2; i * i <= num; i++) {
        if (pno[i] == true) {
            for (int j = i * 2; j <= num; j += i)
                pno[j] = false;
        }
    }
    for (int i = 2; i <= num; i++)
        if (pno[i])
            cout << i << " ";
}

int main() {
    int num = 15;
    cout << "The prime numbers smaller or equal to " << num << " are: ";
    SieveOfEratosthenes(num);
    return 0;
}

আউটপুট

উপরোক্ত প্রোগ্রামের আউটপুট নিম্নরূপ।

The prime numbers smaller or equal to 15 are: 2 3 5 7 11 13

এখন, আসুন উপরের প্রোগ্রামটি বুঝি।

SieveOfEratosthenes() ফাংশন num-এ প্রদত্ত আর্গুমেন্টের আগে যেনে প্রাইম নাম্বারগুলো খুঁজে বের করে। এর কোড স্নিপেট নিচে দেওয়া হল।

void SieveOfEratosthenes(int num) {
    bool pno[num + 1];
    memset(pno, true, sizeof(pno));
    for (int i = 2; i * i <= num; i++) {
        if (pno[i] == true) {
            for (int j = i * 2; j <= num; j += i)
                pno[j] = false;
        }
    }
    for (int i = 2; i <= num; i++)
        if (pno[i])
            cout << i << " ";
}

main() ফাংশনে num-এর মান সেট করা হয়েছে এবং num-এ ছোট বা সমান সকল প্রাইম নাম্বার প্রিন্ট করা হয়েছে। এটি SieveOfEratosthenes() ফাংশন কল করে করা হয়েছে। এর কোড স্নিপেট নিচে দেওয়া হল।

int main() {
    int num = 15;
    cout << "The prime numbers smaller or equal to " << num << " are: ";
    SieveOfEratosthenes(num);
    return 0;
}

  1. C++ ব্যবহার করে পেন্টাগোনাল পিরামিডাল সংখ্যা নির্ণয় করুন

  2. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  3. C++-এ ট্রেন স্টপেজ স্টেশন সংখ্যা বের করুন

  4. রিকারসিভ ইউক্লিড অ্যালগরিদম দিয়ে দুটি সংখ্যার GCD বের করার C++ প্রোগ্রাম