কম্পিউটার

C++ প্রোগ্রাম অনন্য জোড়া খুঁজে বের করার জন্য যাতে প্রতিটি উপাদান N এর থেকে কম বা সমান হয়


এই নিবন্ধে, আমরা N-এর থেকে কম বা সমান উপাদান এবং কিছু নির্দিষ্ট শর্ত মেনে সংখ্যার অনন্য জোড়া খুঁজে বের করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব -

  • দুটি সংখ্যার মধ্যে পার্থক্যের বর্গ অবশ্যই সেই দুটি সংখ্যার LCM এর সমান হতে হবে।

  • এই দুটি সংখ্যার HCF যেকোন দুটি পরপর সংখ্যার গুণফল হিসাবে উপস্থাপন করা যেতে পারে।

এই সমস্যা সমাধানের সর্বোত্তম পন্থা হবে পরপর দুটি সংখ্যা গ্রহণ করা (1 থেকে শুরু করে) এবং সেই সংখ্যার গুণফলের গুণিতক খুঁজে বের করা। তারপর গুণিতকগুলির মধ্যে, একটি জোড়া সংখ্যা নির্দিষ্ট করতে আমাদের পরীক্ষা করতে হবে যে জোড়ার সংখ্যাগুলি প্রথম প্রদত্ত শর্ত পূরণ করে কিনা৷

উদাহরণস্বরূপ, 2 এবং 3-এর ক্ষেত্রে ধরুন। তাদের গুণফল হবে 6। এখন যদি আমরা 6 এর গুণিতক নিয়ে যাই, আমরা 6, 12, 18, 24 পাব … একবারে দুটি সংখ্যা নিলে, আমরা পরীক্ষা করি কিনা পরপর দুটি সংখ্যার মধ্যে পার্থক্যের বর্গ (এই ক্ষেত্রে 36) সেই সংখ্যাগুলির LCM এর সমান। আমরা অবশেষে এই ক্ষেত্রে জুটি 12 এবং 18 হবে।

সমীকরণটি সাধারণীকরণ করে, আমরা দুটি সংখ্যা পেয়েছি Z * (Z*(Z+1)) এবং (Z+1) * (Z*(Z+1)) যেখানে Z হল HCF (পরপর জোড়া) প্রথম সংখ্যা পণ্য)।

অবশেষে শর্তটি ব্যবহার করে যে মানগুলি N এর চেয়ে কম হওয়া উচিত, আমরা পাই

(Z+1) * (Z*(Z+1)) <=N বা Z 3 + (2*Z 2 ) + Z <=N.

উদাহরণ

#include <iostream>
using namespace std;
int main() {
   int N = 489, pairs, i = 1;
   //counting the number of pairs having elements less than N
   while((i*i*i) + (2*i*i) + i <= N) {
      i++;
   }
   pairs = i;
   cout << "Pairs :" << endl;
   //printing the two elements of the pair
   for(int j = 1; j < pairs; j++) {
      cout << j*(j*(j+1)) << " " << (j+1)*(j*(j+1)) << endl;
   }  
   return 0;
}

আউটপুট

Pairs :
2 4
12 18
36 48
80 100
150 180
252 294
392 448

  1. C++ এ n এর থেকে কম বা সমান সমস্ত ফ্যাক্টরিয়াল সংখ্যা খুঁজুন

  2. C++ প্রোগ্রাম 'k' খুঁজে বের করার জন্য যাতে প্রতিটি অ্যারের উপাদানের সাথে এর মডুলাস একই থাকে

  3. C++ একটি শব্দকে পার্টিশন করার উপায় খুঁজে বের করার জন্য প্রোগ্রাম যাতে প্রতিটি শব্দ একটি প্যালিনড্রোম

  4. দুই নম্বর অদলবদল করতে C++ প্রোগ্রাম