इस समस्या में, हमें n तत्वों की एक सरणी दी गई है। हमारा काम सरणी के सभी अभाज्य संख्याओं का xor प्रिंट करना है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट - {2, 6, 8, 9, 11}
आउटपुट -
इस समस्या को हल करने के लिए, हम परिणाम खोजने के लिए सरणी के सभी अभाज्य संख्याओं और 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