আমাদের N উপাদানের একটি অ্যারে দেওয়া হয়েছে। লক্ষ্য হল সমস্ত জোড়ার (Arr[i],Arr[j]) সংখ্যা খুঁজে বের করা যার একটি সমষ্টি আছে যা একটি নিখুঁত বর্গ যেমন i!=j। সেটা হল Arr[i]+Arr[j] হল একটি নিখুঁত বর্গ।
আমরা জোড়ার যোগফল গণনা করে এটি করব এবং সেই যোগফলের বর্গমূল বর্গমূলের তল মানের সমান কিনা তা পরীক্ষা করব। sqrt(Arr[i]+Arr[j])-floor( sqrt(Arr[i]+Arr[j] )==0.
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − Arr[]={ 4,3,2,1,2,4 } N=6
আউটপুট − নিখুঁত বর্গ − 2
যোগফল সহ জোড়ার সংখ্যাব্যাখ্যা −
Arr[1]+Arr[3]=4, sqrt(4)-floor(4)=0 4 is a perfect square. Arr[2]+Arr[4]=4, sqrt(4)-floor(4)=0 4 is a perfect square. Rest all pairs have sum 7,6,5,8 which are not perfect squares.
ইনপুট − Arr[]={ 3,3,3,3,3} N=5
আউটপুট − নিখুঁত বর্গ − 0
যোগফল সহ জোড়ার সংখ্যাব্যাখ্যা − সমস্ত জোড়ার যোগফল =6, যা একটি নিখুঁত বর্গ নয়।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা গ্লাভস> 0 এর আকারের জন্য এলোমেলো সংখ্যা সহ শুরু করা একটি পূর্ণসংখ্যা অ্যারে Arr[] নিই।
-
একটি পরিবর্তনশীল n নিন যা Arr[] এর দৈর্ঘ্য সংরক্ষণ করে।
-
ফাংশন কাউন্টপেয়ার্স(int arr[], int n) একটি অ্যারে নেয়, এটির দৈর্ঘ্য ইনপুট হিসাবে এবং যোগফল থাকে যা একটি নিখুঁত বর্গক্ষেত্র।
-
জোড়ার প্রতিটি উপাদানের জন্য লুপের জন্য দুটি ব্যবহার করে ট্রাভার্স অ্যারে।
-
0<=i
-
arr[i] এর যোগফল গণনা করুন, arr[j] ধনাত্মক।
-
যোগফলের বর্গমূলকে sqrt(সমষ্টি) হিসাবে গণনা করুন।
-
এখন পরীক্ষা করুন sqr-floor(sqr)==0 কিনা। যার অর্থ যোগফল একটি নিখুঁত বর্গ। যদি সত্য বৃদ্ধির সংখ্যা।
-
সমস্ত লুপ গণনার শেষে মোট জোড়ার সংখ্যা থাকবে যার যোগফল হবে নিখুঁত বর্গ।
-
ফলাফল হিসাবে গণনা ফেরত দিন।
উদাহরণ
#include <bits/stdc++.h> #include <math.h> using namespace std; int countPairs(int arr[], int n){ int count=0; int sum=0; double sqr=0; for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ sum=arr[i]+arr[j]; sqr=sqrt(sum); if( sqr-floor(sqr)==0 ){ count++; //cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]; //to print } } } return count; } int main(){ int arr[] = { 1, 2, 4, 8, 5, 6 }; // Size of arr[] int n = sizeof(arr) / sizeof(int); cout <<endl<<"Pairs whose sum is perfect square :"<<countPairs(arr, n); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেPairs whose sum is perfect square :2