ধরুন আমাদের একটি অ্যারে রয়েছে A[], n উপাদান সহ। আমাদের আরেকটি অ্যারে B[] খুঁজে বের করতে হবে, যার আকার হল n+1, যেমন B[i] এবং B[i + 1]-এর GCD হল A[i]। যদি একাধিক সমাধান থাকে, তাহলে তাদের মধ্যে একটি প্রিন্ট করুন যার অ্যারের যোগফল সর্বনিম্ন। সুতরাং A =[1, 2, 3] হলে, আউটপুট হবে [1, 2, 6, 3]
যখন A-তে শুধুমাত্র একটি উপাদান থাকে K বলে, তখন B =[K, K]। সুতরাং B[0] হবে A[0]। এখন বিবেচনা করুন আমরা সূচক i পর্যন্ত সম্পন্ন করেছি, তাই আমরা ইতিমধ্যে সূচক i প্রক্রিয়া করেছি এবং B[i + 1] গণনা করেছি। এখন B[i + 1] এবং B[i + 2] =A[i + 1] এর GCD, তারপর B[i + 2] এবং B[i + 3] =A[i + 2] এর GCD। সুতরাং B[i + 2]>=A[i + 1], A[i + 2] এর LCM। আমরা যেমন ন্যূনতম যোগফল চাই, তাহলে আমরা B[i + 2] এর সর্বনিম্ন মান পেতে চাই, তাই B[i + 2] – A[i + 2] এবং A[i + 3]
এর LCMউদাহরণ
#include <iostream> #include <algorithm> using namespace std; int getLCM(int a, int b) { return (a * b) / __gcd(a, b); } void gcdArray(int A[], int n) { cout << A[0] << " "; for (int i = 0; i < n - 1; i++) cout << getLCM(A[i], A[i + 1]) << " "; cout << A[n - 1]; } int main() { int A[] = { 1, 2, 3 }; int n = sizeof(A) / sizeof(A[0]); cout << "Constructed array: "; gcdArray(A, n); }
আউটপুট
Constructed array: 1 2 6 3