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

দুই অ্যারে থেকে প্রাইম সংখ্যার যোগফলের আকার গণনা C++-এ

দুটি অ্যারে দেওয়া থাকলে, প্রথম অ্যারে থেকে একটি প্রাইম এবং দ্বিতীয় অ্যারে থেকে একটি প্রাইম নিয়ে যোগফল করলে কতটি স্বতন্ত্র (distinct) যোগফল পাওয়া যায় তা বের করতে হবে।

উদাহরণ

অ্যারে ১: [2, 3, 5]

অ্যারে ২: [2, 2, 4, 7]

প্রাইম জোড়া: (2,2)=4, (2,7)=9, (3,2)=5, (3,7)=10, (5,2)=7, (5,7)=12

স্বতন্ত্র যোগফল: {4, 5, 7, 9, 10, 12} → মোট 6টি

অ্যালগরিদম

  1. প্রাইম চেক ফাংশন লিখুন।
  2. দুই নেস্টেড লুপে সব জোড়া চেক করুন।
  3. যদি উভয় প্রাইম হয়, তবে যোগফল একটি set-এ ইনসার্ট করুন।
  4. সেটের সাইজ রিটার্ন করুন।

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

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

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

int distinctPrimeSums(int arr1[], int n1, int arr2[], int n2) {
    unordered_set sums;
    for (int i = 0; i < n1; i++) {
        if (!isPrime(arr1[i])) continue;
        for (int j = 0; j < n2; j++) {
            if (!isPrime(arr2[j])) continue;
            sums.insert(arr1[i] + arr2[j]);
        }
    }
    return sums.size();
}

int main() {
    int arr1[] = {2, 3, 5};
    int arr2[] = {2, 2, 4, 7};
    int n1 = sizeof(arr1)/sizeof(arr1[0]);
    int n2 = sizeof(arr2)/sizeof(arr2[0]);
    
    cout << "Distinct prime sums: " << distinctPrimeSums(arr1, n1, arr2, n2);
    return 0;
}

ইনপুট

arr1=[2,3,5], arr2=[2,2,4,7]

আউটপুট

6
  1. C++-এ ১ থেকে n পর্যন্ত ৪ ডিজিট থাকা সংখ্যা গণনা (Count Numbers with Digit 4)

  2. C++-এ N সংখ্যার অ্যারে থেকে K সংখ্যা দিয়ে গঠিত সব স্বতন্ত্র পূর্ণসংখ্যা প্রিন্ট করা

  3. তিনটি সর্টেড অ্যারে থেকে তিনটি সन्नিকট উপাদান খুঁজে বের করা C++-তে

  4. 1 থেকে N পর্যন্ত অলমোস্ট প্রাইম সংখ্যার সংখ্যা বের করা C++-তে