কম্পিউটার টিউটোরিয়াল

সি++-এ a²+b²=c² এবং 1≤a≤b≤c≤n সন্তুষ্টকারী ট্রিপলেট গণনা

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

  • a² + b² = c²
  • 1 ≤ a ≤ b ≤ c ≤ n

দুটি লুপ 1<=a<=n এবং 1<=b<=n দিয়ে চেক করা হয়। c = sqrt(a²+b²) হিসাব করে উভয় শর্ত পূরণ হলে count বাড়ানো হয়।

উদাহরণ

ইনপুট: N=5

আউটপুট: ট্রিপলেট সংখ্যা: ১

ব্যাখ্যা: a=3, b=4, c=5 এর জন্য উভয় শর্ত পূরণ হয়।

ইনপুট: N=3

আউটপুট: ট্রিপলেট সংখ্যা: ০

ব্যাখ্যা: শর্ত পূরণকারী কোনো ট্রিপলেট নেই।

অ্যাপ্রোচ

  • N ইন্টিজার ভেরিয়েবলে রেঞ্জের শেষ সীমা [1,N]।
  • countTriplets(int n) ফাংশন n গ্রহণ করে শর্ত পূরণকারী ট্রিপলেট সংখ্যা রিটার্ন করে।
  • count=0, a,b,c=1, sum=0।
  • for a=1 থেকে n এবং b=a থেকে n: sum = a*a + b*b, c = sqrt(sum)।
  • যদি c*c == sum এবং b<=c && c<=n হয় (উভয় শর্ত পূরণ), count++।

উদাহরণ কোড

#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++) {
        for (b = a; b <= n; b++) {
            sum = a*a + b*b;
            c = sqrt(sum);
            if (c * c == sum && b <= c && c <= n) {
                count++;
                cout << endl << "a :" << a << " b :" << b << " c :" << c;
            }
        }
    }
    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 :15 4
  1. C++-এ ট্রি-এ তিনটি নোড যাতে সংযোগ পথে নোড সংখ্যা ম্যাক্সিমাম হয়

  2. ax - by = 0 সমীকরণের ন্যূনতম x এবং y বের করা (C++)

  3. সর্বনিম্ন সংখ্যা K খুঁজে বের করা যাতে K % p = 0 এবং q % K = 0 C++-তে

  4. দেওয়া সংখ্যা n-এর জন্য x + x-এর অঙ্কের যোগফল = n এমন x খুঁজে বের করা C++-এ