আমাদের 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