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

C++-এ N-এর চেয়ে ছোট বা সমান সব মাল্টিপ্লিকেটিভ প্রাইম প্রিন্ট করা

এই সমস্যায় একটি পূর্ণসংখ্যা n দেওয়া আছে। আমাদের n-এর চেয়ে ছোট বা সমান সব মাল্টিপ্লিকেটিভ প্রাইম প্রিন্ট করতে হবে।

মাল্টিপ্লিকেটিভ প্রাইম হলো সেই প্রাইম সংখ্যা যেনের অঙ্কগুলোর গুণফলও প্রাইম সংখ্যা। যেমন: 2, 3, 5, 7, 13, 17।

23 প্রাইম কিন্তু মাল্টিপ্লিকেটিভ প্রাইম নয় কারণ 2*3 = 6।

উদাহরণ

ইনপুট: n = 9
আউটপুট: 2 3 5 7

এই সমস্যাটি সমাধানের জন্য n-এর চেয়ে ছোট সব প্রাইম সংখ্যা খুঁজে বের করতে হবে। এবং চেক করতে হবে যে সংখ্যাটি মাল্টিপ্লিকেটিভ প্রাইম কিনা। এবং n-এর চেয়ে ছোট সব মাল্টিপ্লিকেটিভ প্রাইম প্রিন্ট করা হবে।

বাস্তবায়ন

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

int digitMultiply(int n) { 
    int prod = 1; 
    while (n) { 
        prod = prod * (n % 10); 
        n = n / 10; 
    } 
    return prod; 
} 

void generateMprime(int n) { 
    bool prime[n + 1]; 
    memset(prime, true, sizeof(prime)); 
    prime[0] = prime[1] = false; 
    for (int p = 2; p * p <= n; p++) { 
        if (prime[p]) { 
            for (int i = p * 2; i <= n; i += p) 
                prime[i] = false; 
        } 
    } 
    for (int i = 2; i <= n; i++) { 
        if (prime[i] && prime[digitMultiply(i)]) 
            cout << i << "\t"; 
    } 
} 

int main() { 
    int n = 10; 
    cout << "All multiplicative Prime Numbers <= " << n << " are :\n"; 
    generateMprime(n); 
    return 0; 
}

আউটপুট

All multiplicative Prime Numbers <= 10 are :
2 3 5 7
  1. C++-এ বাইনারি ট্রির সব ফুল নোড প্রিন্ট করা

  2. C++-এ বাইনারি ট্রির সব ইন্টারনাল নোড প্রিন্ট করা

  3. C++-এ একটি নির্দিষ্ট নোড থেকে দূরত্ব k-এ থাকা সব নোড প্রিন্ট করা

  4. C++-এ বাইনারি ট্রিতে K লিফ বিশিষ্ট সব নোড প্রিন্ট করা