এই সমস্যায়, আমাদেরকে A, B এবং N তিনটি মান দেওয়া হয়েছে। আমাদের কাজ হল n ধনাত্মক পূর্ণসংখ্যা খুঁজে বের করা যা প্রদত্ত সমীকরণগুলিকে সন্তুষ্ট করে।
সমস্যা বর্ণনা − আমাদের N ধনাত্মক মানগুলি খুঁজে বের করতে হবে যা উভয় সমীকরণকে সন্তুষ্ট করে,
x12 + x22 + … xn2 ≥ A x1 + x2 + … xn ≤ B
উপস্থিত থাকলে n মান প্রিন্ট করুন, অন্যথায় -1 প্রিন্ট করুন।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট
N = 4, A = 65, B = 16
আউটপুট
1 1 1 8
ব্যাখ্যা
সমীকরণগুলো হল −
12 + 12 + 12 + 82 = 1 + 1 + 1 + 64 = 67 ≥ 65 1 + 1 + 1 + 8 = 11 < 16
সমাধান পদ্ধতি
সমস্যার একটি সহজ সমাধান হল বর্গ যোগফল সর্বাধিক করা। ধারণাটি হল একটি সংখ্যাকে প্রাথমিক সংখ্যা হিসাবে ব্যবহার করে বর্গ যোগফল সর্বাধিক করা এবং অন্যটি 1 হিসাবে ব্যবহার করা। এইভাবে এটি ব্যবহার করে আমরা বর্গ যোগফলকে সর্বাধিক করতে পারি এবং যোগফলের শর্ত পূরণ করতে পারি।
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
উদাহরণ
#include <bits/stdc++.h> using namespace std; void findNintegers(int N, int A, int B) { vector<int> numbers; for (int i = 0; i < N - 1; i++) numbers.push_back(1); if (B - (N - 1) <= 0) { cout << "-1"; return; } numbers.push_back(B - (N - 1)); int vals = 0; for (int i = 0; i < N; i++) vals += numbers[i] * numbers[i]; if (vals < A) { cout << "-1"; return; } for (int i = 0; i < N; i++) cout << numbers[i] << " "; } int main(){ int N = 4, A = 65, B = 17; cout<<N<<" positive integers that satisfy the given equations are "; findNintegers(N, A, B); return 0; }
আউটপুট
4 positive integers that satisfy the given equations are 1 1 1 14