इस ट्यूटोरियल में, हम नीचे दी गई प्रॉब्लम को हल करने जा रहे हैं।
पूर्णांकों की एक सरणी दी गई है, हमें दो संख्याएं A और B ढूंढनी हैं। सरणी में शेष सभी संख्याएं A और B के भाजक हैं।
यदि कोई संख्या A और B दोनों की भाजक है, तो यह सरणी में दो बार मौजूद होगी।
आइए प्रॉब्लम को हल करने के चरण देखें।
सरणी में अधिकतम संख्या A और B में से एक है। मान लीजिए यह A है।
अब, B दूसरी सबसे बड़ी संख्या होगी या वह संख्या जो A की भाजक नहीं है।
उदाहरण
आइए कोड देखें।
#include <bits/stdc++.h>
using namespace std;
void findTheDivisors(int arr[], int n) {
sort(arr, arr + n);
int A = arr[n - 1], B = -1;
for (int i = n - 2; i > -1; i--) {
if (A % arr[i] != 0) {
B = arr[i];
break;
}
if (i - 1 >= 0 && arr[i] == arr[i - 1]) {
B = arr[i];
break;
}
}
cout << "A = " << A << ", B = " << B << endl;
}
int main() {
int arr[] = {3, 2, 3, 4, 12, 6, 1, 1, 2, 6};
findTheDivisors(arr, 10);
return 0;
}
आउटपुट
यदि आप उपरोक्त प्रोग्राम को निष्पादित करते हैं, तो आपको निम्न परिणाम मिलेगा।
A = 12, B = 6
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में उल्लेख करें।