इस समस्या में, हमें n तत्वों की एक सरणी दी गई है। हमारा कार्य सरणी के सभी अभाज्य संख्याओं का XOR प्रिंट करना है।
आइए एक उदाहरण से समस्या को समझते हैं,
इनपुट - {2, 6, 8, 9, 11}
आउटपुट -
इस समस्या को हल करने के लिए, हम सरणी के सभी अभाज्य संख्याओं को ढूंढेंगे और फिर परिणाम खोजने के लिए उनका XOR करेंगे। यह जांचने के लिए कि तत्व अभाज्य है या नहीं, हम सिव के एल्गोरिदम का उपयोग करेंगे और फिर उन सभी तत्वों का XOR करेंगे जो अभाज्य हैं।
उदाहरण
हमारे समाधान के कार्यान्वयन को दिखाने वाला प्रोग्राम,
#include <bits/stdc++.h>
using namespace std;
bool prime[100005];
void SieveOfEratosthenes(int n) {
memset(prime, true, sizeof(prime));
prime[1] = false;
for (int p = 2; p * p <= n; p++) {
if (prime[p]) {
for (int i = p * 2; i <= n; i += p)
prime[i] = false;
}
}
}
int findXorOfPrimes(int arr[], int n) {
SieveOfEratosthenes(100005);
int result = 0;
for (int i = 0; i < n; i++) {
if (prime[arr[i]])
result = result ^ arr[i];
}
return result;
}
int main() {
int arr[] = {4, 3, 2, 6, 100, 17};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "The xor of all prime number of the array is: " << findXorOfPrimes(arr, n);
return 0;
}
आउटपुट
The xor of all prime number of the array is: 16