हमें N तत्वों की एक सरणी arr[] दी गई है। लक्ष्य उन सभी वैध इंडेक्स युग्मों (i, j) की गिनती ढूंढना है जैसे कि या तो arr[i], arr[j] से विभाज्य है या arr[j], arr[i] से विभाज्य है और i != j।
हम इसे सरणी arr[] को दो फॉर लूप का उपयोग करके प्रत्येक युग्म की संख्या के लिए पार करके और जांच करके करेंगे कि क्या arr[i]%arr[j]==0 या arr[j]%arr[i]==0 जब i!=j। यदि सही है तो युग्मों की गिनती बढ़ाते हैं।
आइए उदाहरणों से समझते हैं।
इनपुट - Arr[]= { 2,4,3,6 } N=4
आउटपुट - वैध युग्मों की संख्या: 3
व्याख्या - वैध युग्म हैं -
Arr[0] & Arr[1] → (2,4) यहां 4%2==0, 0!=1 Arr[0] & Arr[3] → (2,6) यहां 6%2==0, 0!=3 Arr[2] & Arr[3] → (3,6) यहां 6%3==0, 2!=3
इनपुट - Arr[]= { 2,5,7,9,11 } N=5
आउटपुट - वैध युग्मों की संख्या: 0
व्याख्या - कोई संख्या दूसरी को पूरी तरह विभाजित नहीं करती। कोई युग्म नहीं बन सकता।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम यादृच्छिक संख्याओं से आरंभ एक पूर्णांक सरणी Arr[] लेते हैं।
एक वेरिएबल n लेते हैं जो Arr[] की लंबाई स्टोर करता है।
फंक्शन countPairs(int arr[], int n) एक सरणी, उसकी लंबाई को इनपुट के रूप में लेता है और उन युग्मों को लौटाता है जो वैध हैं और वांछित शर्तों को पूरा करते हैं।
प्रत्येक युग्म के तत्व के लिए दो फॉर लूप का उपयोग करके सरणी को पार करते हैं।
बाहरी लूप 0<=i
जांचते हैं कि arr[i]%arr[j]==0 या arr[j]%arr[i]==0 है या नहीं। यदि कोई शर्त सही है तो काउंट को एक बार बढ़ाते हैं।
सभी लूप के अंत में काउंट में वैध युग्मों की कुल संख्या होगी।
काउंट को परिणाम के रूप में लौटाते हैं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int countPairs(int arr[], int n){ // युग्मों की गिनती int count = 0; for (int i = 0; i < n-1; i++){ for (int j = i + 1; j < n; j++){ if(arr[i]%arr[j]==0 || arr[j]%arr[i]==0) { count++; } } } return count; } int main(){ int Arr[] = { 2,3,4,5,6 }; int len = sizeof(Arr) / sizeof(Arr[0]); cout << "युग्मों की संख्या: "<< countPairs(Arr, len); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
युग्मों की संख्या: 3