আমাদের N উপাদানগুলির একটি অ্যারে অ্যারে [] দেওয়া হয়েছে। লক্ষ্য হল সমস্ত বৈধ জোড়া সূচকের (i,j) গণনা খুঁজে বের করা যাতে হয় arr[i] arr[j] দ্বারা বিভাজ্য অথবা arr[j] arr[i] এবং i!=j দ্বারা বিভাজ্য।
আমরা প্রতিটি জোড়ার সংখ্যার জন্য দুটি ফর লুপ ব্যবহার করে অ্যারে অ্যারে[] অতিক্রম করে এটি করব এবং পরীক্ষা করব কিনা arr[i]%arr[j]==0 বা arr[j]%arr[i]==0 যখন আমি !=j জোড়ার সংখ্যা সত্যি হলে।
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − Arr[]={ 2,4,3,6 } N=4
আউটপুট − বৈধ জোড়ার সংখ্যা − 3
ব্যাখ্যা − বৈধ জোড়া হল −
Arr[0] & Arr[1] → (2,4) here 4%2==0 0!=1 Arr[0] & Arr[1] → (2,6) here 6%2==0 0!=3 Arr[2] & Arr[3] → (3,6) here 6%3==0 2!=3
ইনপুট − Arr[]={ 2,5,7,9,11 } N=5
আউটপুট − বৈধ জোড়ার সংখ্যা − 0
ব্যাখ্যা - কোনো সংখ্যা অন্যটিকে সম্পূর্ণভাবে ভাগ করে না। কোন জোড়া তৈরি করা যাবে না।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা একটি পূর্ণসংখ্যার অ্যারে নিই Arr[] এলোমেলো সংখ্যার সাথে শুরু।
-
একটি পরিবর্তনশীল n নিন যা Arr[] এর দৈর্ঘ্য সংরক্ষণ করে।
-
ফাংশন কাউন্টপেয়ার্স(int arr[], int n) একটি অ্যারে নেয়, এর দৈর্ঘ্য ইনপুট হিসাবে এবং সেই জোড়া ফেরত দেয় যা বৈধ এবং কাঙ্খিত শর্ত পূরণ করে।
-
জোড়ার প্রতিটি উপাদানের জন্য লুপের জন্য দুটি ব্যবহার করে ট্রাভার্স অ্যারে।
-
0<=i
-
arr[i]%arr[j]==0 বা arr[j]%arr[i]==0 কিনা পরীক্ষা করুন। যেকোন একটি শর্ত থাকলে একবার বৃদ্ধির সংখ্যা।
-
সমস্ত লুপ গণনার শেষে বৈধ জোড়ার মোট সংখ্যা থাকবে
-
ফলাফল হিসাবে গণনা ফেরত দিন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int countPairs(int arr[], int n){
// Count of pairs
int count = 0;
for (int i = 0; i < n-1; i++){
for (int j = i + 1; j < n; j++){
if(arr[i]%arr[j]==0 || arr[j]%arr[i]==0)
{ count++; }
}
}
return count;
}
int main(){
int Arr[] = { 2,3,4,5,6 };
int len = sizeof(Arr) / sizeof(Arr[0]);
cout << "Count of number of pairs : "<< countPairs(Arr, len);
return 0;
} আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of number of pairs : 3