इस समस्या में, हमें एक पूर्णांक n दिया जाता है और हमें n से कम या उसके बराबर सभी गुणक अभाज्यों को प्रिंट करना होता है।
गुणात्मक अभाज्य संख्याएं वे अभाज्य संख्याएँ हैं जिनके अंकों का गुणनफल भी अभाज्य संख्याएँ होती हैं। जैसे 2, 3, 5, 7, 13, 17.
23 अभाज्य है लेकिन 2*3 =6 के कारण गुणनात्मक अभाज्य नहीं है।
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -
Input: n = 9 Output: 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); }
आउटपुट
All multiplicative Prime Numbers =< 10 are − 2 3 5 7. हैं