हमें पूर्णांक तत्वों वाले किसी भी आकार की एक सरणी दी गई है और कार्य एक सरणी में जोड़े की गणना की गणना करना है जैसे कि एक जोड़ी का एक तत्व एक जोड़ी के दूसरे तत्व को विभाजित करता है।
एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत कर सकता है। डेटा के संग्रह को संग्रहीत करने के लिए एक सरणी का उपयोग किया जाता है, लेकिन एक सरणी को उसी प्रकार के चर के संग्रह के रूप में सोचना अक्सर अधिक उपयोगी होता है।
उदाहरण के लिए
Input − int arr[] = {1, 2, 3, 6} Output − count is 4
स्पष्टीकरण - (1,2), (1,3), (1,6) और (3,6) ऐसे जोड़े हैं जिनमें एक जोड़े का एक तत्व दूसरे को 1 से विभाजित करता है और किसी भी संख्या को 3 विभाजित कर सकता है। तो गिनती 4 है।
Input − int arr[] = {2, 5, 10} Output − count is 2
स्पष्टीकरण - (2, 10) और (5,10) ऐसे जोड़े हैं जिनमें एक जोड़े का एक तत्व दूसरे को विभाजित करता है जैसे 2 10 को विभाजित कर सकता है और 5 भी 10 को विभाजित कर सकता है। तो गिनती 2 है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
एक सरणी बनाएं मान लें, arr[]
-
लंबाई () फ़ंक्शन का उपयोग करके एक सरणी की लंबाई की गणना करें जो एक सरणी में तत्वों के अनुसार एक पूर्णांक मान लौटाएगा।
-
एक अस्थायी चर लें जो केवल एक सरणी में मौजूद तत्वों की संख्या को संग्रहीत करेगा।
-
i से 0 तक के लिए लूप प्रारंभ करें और मैं एक सरणी के आकार से छोटा हूं
-
लूप के अंदर एक और लूप शुरू करें जिसमें j से i+1 तक j आकार से छोटा हो
-
लूप के अंदर जांचें कि क्या arr[i]% arr[j] =0 या arr[j]% arr[i] =0 है, तो गिनती बढ़ाएं
-
गिनती लौटाएं
-
परिणाम प्रिंट करें।
उदाहरण
#include <iostream> using namespace std; int divisibles(int a[], int size){ int result = 0; // Iterating through all pairs for (int i=0; i<size; i++){ for (int j=i+1; j<size; j++){ if (a[i] % a[j] == 0 || a[j] % a[i] == 0){ result++; } } } return result; } int main(){ int a[] = {1, 4, 7, 8, 9}; int size = sizeof(a) / sizeof(a[0]); cout <<"count is " <<divisibles(a, size); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -
count is 5