একটি ইন্টিজার 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