ধরুন আমাদের কাছে ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে A[] আছে, যেখানে 2 <=A[i] <=106. i এর সম্ভাব্য সকল মানের জন্য। কাজটি হল পরীক্ষা করা যে, অ্যারের মধ্যে অন্তত এলিমেন্ট আছে কি না, যেটি অ্যারের অন্য সব উপাদানের সাথে coprime পেয়ার তৈরি করে। অ্যারে {2, 8, 4, 10, 6, 7} বিবেচনা করুন। এখানে 7 হল অ্যারের অন্য সব উপাদানের সাথে coprime।
এই সমস্যাটি সমাধান করার জন্য একটি কার্যকর পদ্ধতি হল, আমাদের প্রদত্ত অ্যারেতে পূর্ণসংখ্যার সমস্ত মৌলিক গুণনীয়ক তৈরি করতে হবে, যদি উপাদানটিতে অন্যান্য উপাদানগুলির সাথে কোনও সাধারণ মৌলিক গুণনীয়ক না থাকে তবে এটি সর্বদা অন্যান্য উপাদানগুলির সাথে কপ্রাইম জোড়া গঠন করে। পি>
উদাহরণ
#include <iostream> #define MAX 1000001 using namespace std; int smallPrimeFactor[MAX]; // Hash to store prime factors count int hash1[MAX] = { 0 }; void getSmallestPrimeFactor() { smallPrimeFactor[1] = 1; for (int i = 2; i < MAX; i++) smallPrimeFactor[i] = i; for (int i = 4; i < MAX; i += 2) smallPrimeFactor[i] = 2; for (int i = 3; i * i < MAX; i++) { if (smallPrimeFactor[i] == i) { for (int j = i * i; j < MAX; j += i) if (smallPrimeFactor[j] == j) smallPrimeFactor[j] = i; } } } void factorizationResult(int x) { int temp; while (x != 1) { temp = smallPrimeFactor[x]; if (x % temp == 0) { hash1[smallPrimeFactor[x]]++; x = x / smallPrimeFactor[x]; } while (x % temp == 0) x = x / temp; } } bool hasCommonFactors(int x) { int temp; while (x != 1) { temp = smallPrimeFactor[x]; if (x % temp == 0 && hash1[temp] > 1) return false; while (x % temp == 0) x = x / temp; } return true; } bool hasValueToFormCoPrime(int arr[], int n) { getSmallestPrimeFactor(); for (int i = 0; i < n; i++) factorizationResult(arr[i]); for (int i = 0; i < n; i++) if (hasCommonFactors(arr[i])) return true; return false; } int main() { int arr[] = { 2, 8, 4, 10, 6, 7 }; int n = sizeof(arr) / sizeof(arr[0]); if (hasValueToFormCoPrime(arr, n)) cout << "There is a value, that can form Co-prime pairs with all other elements"; else cout << "There is no value, that can form Co-prime pairs with all other elements"; }
আউটপুট
There is a value, that can form Co-prime pairs with all other elements