কম্পিউটার

ট্রিপলেটের সংখ্যা গণনা করুন (a, b, c) যেমন a^2 + b^2 =c^2 এবং 1<=a<=b<=c<=n C++ এ


আমাদের একটি পূর্ণসংখ্যা n দেওয়া হয়েছে। লক্ষ্য হল ট্রিপলেট (৩টি সংখ্যার সেট) খুঁজে বের করা যা শর্ত পূরণ করে −

  • a 2 +b 2 =c 2

  • 1<=a<=b<=c<=n

আমরা 1<=a<=n এবং 1<=b<=n মানের জন্য দুটি লুপ চালানোর মাধ্যমে এটি করব। সেই অনুযায়ী c গণনা করুন (c=sqrt(a2+b2 )) এবং বৃদ্ধির সংখ্যা যদি 1 এবং 2 উভয় শর্তই পূরণ হয়।

উদাহরণ দিয়ে বোঝা যাক।

ইনপুট − N=5

আউটপুট − ট্রিপলেটের সংখ্যা − 1

ব্যাখ্যা

for a=3, b=4 and c=5 both conditions are met.

ইনপুট − N=3

আউটপুট − ট্রিপলেটের সংখ্যা − 0

ব্যাখ্যা

শর্ত 1 এবং 2 পূরণ করে এমন কোন ট্রিপলেট নেই।

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

  • পূর্ণসংখ্যা N পরিসরের শেষ সীমা [1,N] সংরক্ষণ করে।

  • ফাংশন countTriplets(int n) n নেয় এবং ট্রিপলেটের সংখ্যা ফেরত দেয় যা a 2 শর্ত পূরণ করে +b 2 =c 2 এবং 1<=a<=b<=c<=n

  • পরিবর্তনশীল গণনা এই জাতীয় ট্রিপলেটের সংখ্যা সংরক্ষণ করে, প্রাথমিকভাবে 0।

  • পরিবর্তনশীল যোগফল a এবং b এর বর্গের সমষ্টি সংরক্ষণ করে।

  • a=1 থেকে n এবং b=a থেকে n, যোগফলের বর্গমূল হিসাবে যোগফল=a*a+b*b এবং c গণনা করুন (sqrt(sum))।

  • গণনা করা হলে c-এর মান থাকে যেমন c*c==সমষ্টি এবং b<=c &&c<=n ( উভয় শর্ত 1 এবং 2 পূরণ হয়)।

  • বর্তমান a,b,c হিসাবে বৃদ্ধির সংখ্যা উভয় শর্ত পূরণ করে।

  • a=n এবং b=n পর্যন্ত এটি সম্পাদন করুন। শেষ পর্যন্ত, গণনায় এমন কয়েকটি ট্রিপলেট থাকবে যা শর্ত পূরণ করে।

  • পছন্দসই ফলাফল হিসাবে গণনা ফেরত দিন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int countTriplets(int n){
   int count = 0;
   int a,b,c;
   a=b=c=1;
   int sum=0;
   for (a = 1; a <= n; a++) //1<=a<=n{
      for (b = a; b <= n; b++) //1<=a<=b<=n{
         sum = a*a + b*b; //a^2 + b^2 =c^2
         c = sqrt(sum);
         if (c * c == sum && b<=c && c<=n) //check 1<=a<=b<=c<=n{
            count++;
            cout<<endl<<"a :"<<a<<" b :"<<b<<" c :"<<c; //to print triplets
         }
      }
   }
   return count;
}
int main(){
   int N = 15;
   cout <<endl<< "Number of triplets : "<<countTriplets(N);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Number of triplets :
a :3 b :4 c :5
a :5 b :12 c :13
a :6 b :8 c :10
a :9 b :12 c :154
Number of triplets : 4

  1. ট্রিপলেট খুঁজুন যাতে এই ট্রিপলেটগুলিকে সংযোগকারী নোডের সংখ্যা C++ এ সর্বাধিক হয়

  2. x এবং y-এর ক্ষুদ্রতম মান খুঁজুন যেমন ax – C++ এ =0 দ্বারা

  3. সবচেয়ে ছোট সংখ্যা K খুঁজুন যেমন K % p =0 এবং q % K =0 C++ এ

  4. x এর সমষ্টি এবং এর সংখ্যা C++ এ দেওয়া n-এর সমান