यहां हम देखेंगे कि हम सभी अभाज्य संख्याओं के गुणनफल और किसी सरणी के सभी अभाज्य संख्याओं के बीच पूर्ण अंतर कैसे प्राप्त कर सकते हैं। इस समस्या को हल करने के लिए हमें यह जांचना होगा कि कोई संख्या अभाज्य है या नहीं। प्रारंभिक परीक्षण का एक संभावित तरीका यह है कि किसी संख्या की जाँच उस संख्या के 2 से वर्गमूल के बीच किसी भी संख्या से विभाज्य नहीं है। तो इस प्रक्रिया में (√𝑛) समय लगेगा। फिर उत्पाद प्राप्त करें और पूर्ण अंतर खोजने का प्रयास करें।
एल्गोरिदम
diffPrimeNonPrimeProd(arr)
begin prod_p := product of all prime numbers in arr prod_np := product of all non-prime numbers in arr return |prod_p – prod_np| end
उदाहरण
#include <iostream> #include <cmath> using namespace std; bool isPrime(int n){ for(int i = 2; i<=sqrt(n); i++){ if(n % i == 0){ return false; //not prime } } return true; //prime } int diffPrimeNonPrimeProd(int arr[], int n) { int prod_p = 1, prod_np = 1; for(int i = 0; i<n; i++){ if(isPrime(arr[i])){ prod_p *= arr[i]; } else { prod_np *= arr[i]; } } return abs(prod_p - prod_np); } main() { int arr[] = { 4, 5, 3, 8, 13, 10}; int n = sizeof(arr) / sizeof(arr[0]); cout << "Difference: " << diffPrimeNonPrimeProd(arr, n); }
आउटपुट
Difference: 125