n पूर्णांकों की एक सरणी गिरफ्तारी [n] को देखते हुए, कार्य एक सरणी में सभी मिश्रित संख्याओं का गुणनफल खोजना है।
मिश्रित संख्याएँ वे पूर्ण संख्याएँ होती हैं जो 2 अन्य पूर्ण संख्याओं को गुणा करके बनाई जाती हैं। उदाहरण के लिए 6 एक भाज्य संख्या है जिसे 2 और 3 को गुणा करके बनाया जा सकता है जो पूर्ण संख्याएँ हैं। साथ ही हम कह सकते हैं कि वे प्राइम नहीं हैं।
इनपुट
arr[] = {1, 2, 4, 5, 6, 7} आउटपुट
24
स्पष्टीकरण - सरणी में मिश्रित संख्याएं 4 और 6 हैं और उनका गुणनफल 24 है।
इनपुट
arr[] = {10, 2, 4, 5, 6, 11} आउटपुट
240
स्पष्टीकरण - सरणी में मिश्रित संख्याएं 10, 4, 6 हैं और उनका गुणनफल 240 है।
समस्या को हल करने के लिए नीचे उपयोग किया गया दृष्टिकोण इस प्रकार है
-
किसी सरणी के प्रत्येक तत्व को पुनरावृत्त करें।
-
गैर-अभाज्य या भाज्य संख्याओं को खोजें, अर्थात 1. को छोड़कर किसी अन्य संख्या से विभाज्य।
-
सभी मिश्रित संख्याओं को गुणा करें।
-
परिणाम लौटाएं।
एल्गोरिदम
Start Step 1→ Declare function to find the product of consecutive numbers in array int product_arr(int arr[], int size) declare int max = *max_element(arr, arr + size) set vector<bool> prime(max + 1, true) set prime[0] = true set prime[1] = true Loop For int i = 2 and i * i <= max and i++ IF (prime[i] == true) Loop For int j = i * 2 and j <= max and j += i Set prime[j] = false End End End Set int product = 1 Loop For int i = 0 and i < size and i++ IF (!prime[arr[i]]) Set product *= arr[i] End End return product Stop
उदाहरण
#include <bits/stdc++.h>
using namespace std;
//function to find product of consecutive numbers in an array
int product_arr(int arr[], int size){
int max = *max_element(arr, arr + size);
vector<bool> prime(max + 1, true);
prime[0] = true;
prime[1] = true;
for (int i = 2; i * i <= max; i++){
if (prime[i] == true){
for (int j = i * 2; j <= max; j += i)
prime[j] = false;
}
}
int product = 1;
for (int i = 0; i < size; i++)
if (!prime[arr[i]]){
product *= arr[i];
}
return product;
}
int main(){
int arr[] = { 2, 4, 6, 8, 10};
int size = sizeof(arr) / sizeof(arr[0]);
cout<<"product of consecutive numbers in an array: "<<product_arr(arr, size);
return 0;
} आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
product of consecutive numbers in an array: 1920