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

C++-এ ১ থেকে n পর্যন্ত প্রাইম সংখ্যাদের যোগফল

প্রাইম সংখ্যা যোগফল সমস্যা

১ থেকে n পর্যন্ত সব প্রাইম সংখ্যার যোগফল বের করতে হবে। প্রাইম সংখ্যা হলো যেগুলোর শুধু দুটি গুণক থাকে: ১ এবং সংখ্যাটি নিজে।

উদাহরণ: n = 15 → প্রাইম: ২, ৩, ৫, ৭, ১১, ১৩ → যোগফল = ৪১

পদ্ধতি ১: সাধারণ লুপ (O(n√n))

bool isPrime(int n) {
    for(int i = 2; i * i <= n; i++)
        if(n % i == 0) return false;
    return true;
}

int findPrimeSum(int n) {
    int sum = 0;
    for(int i = 2; i <= n; i++)
        if(isPrime(i)) sum += i;
    return sum;
}

পদ্ধতি ২: সিভ অফ এরাটোস্থেনিস (O(n log log n))

বহুত বড় n এর জন্য দ্রুত।

int findPrimeSum(int n) {
    vector<bool> isPrime(n + 1, true);
    isPrime[0] = isPrime[1] = false;
    for(int i = 2; i * i <= n; i++)
        if(isPrime[i])
            for(int j = i * i; j <= n; j += i)
                isPrime[j] = false;
    int sum = 0;
    for(int i = 2; i <= n; i++)
        if(isPrime[i]) sum += i;
    return sum;
}

C++ কোড উদাহরণ

#include <iostream>
#include <vector>
using namespace std;

int findPrimeSum(int n) {
    vector<bool> isPrime(n + 1, true);
    isPrime[0] = isPrime[1] = false;
    for(int i = 2; i * i <= n; i++)
        if(isPrime[i])
            for(int j = i * i; j <= n; j += i)
                isPrime[j] = false;
    int sum = 0;
    for(int i = 2; i <= n; i++)
        if(isPrime[i]) sum += i;
    return sum;
}

int main() {
    int n = 15;
    cout << "The sum of prime numbers between 1 to " << n << " is " << findPrimeSum(n);
    return 0;
}

আউটপুট

The sum of prime numbers between 1 to 15 is 41
  1. C++-এ একটি সংখ্যার জোড় ফ্যাক্টরগুলোর যোগফল বের করা (Sum of Even Factors)

  2. C++ প্রোগ্রাম: গ্রাফে আর্টিকুলেশন পয়েন্ট (Articulation Points) গণনা করা

  3. C++-এ একটি সংখ্যা দুটি প্রাইমের যোগফল হিসেবে এক্সপ্রেস করা যায় কিনা চেক করা

  4. রিকার্সন ব্যবহার করে প্রাকৃতিক সংখ্যাগুলোর যোগফল (Sum of Natural Numbers) বের করার C++ প্রোগ্রাম