আমাদের দৈর্ঘ্য n এবং একটি সংখ্যা M সহ পূর্ণসংখ্যাগুলির একটি Arr[] দেওয়া হয়েছে। অ্যারেটিতে শুধুমাত্র ধনাত্মক পূর্ণসংখ্যা রয়েছে। লক্ষ্য হল Arr[] এর উপাদানগুলির তিনগুণ গণনা করা যার গুণফল M.
এর সমানআমরা তিনটি ফর লুপ ব্যবহার করে এটি করব। বৃদ্ধি গণনা যদি arr[x]*arr[y]*arr[z]=M এবং x!=y!=z. (0<=x,y,z
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট
arr[]= { 1,2,3,0,2,4 }, M=24 আউটপুট
Number of triplets with product M: 2
ব্যাখ্যা
Triplets with arr[x]*arr[y]*arr[z]==M.
Arr{}=[ 1,2,3,0,2,4 ] =(2,3,4) → 2*3*4=24
Arr{}=[ 1,2,3,0,2,4 ] =(3,2,4) → 3*2*4=24
Total triplets: 2 ইনপুট
arr[]= {2,2,2,2,2}, M=6 আউটপুট
Number of triplets with product M: 0
ব্যাখ্যা
Every triplet has product equal to 8 Total triplets: 0
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা একটি পূর্ণসংখ্যার অ্যারে নিই Arr[] এলোমেলো সংখ্যার সাথে শুরু।
-
ভেরিয়েবল N Arr[] এর দৈর্ঘ্য সঞ্চয় করে।
-
ফাংশন productisM(int arr[],int n,int m) একটি অ্যারে নেয়, এর দৈর্ঘ্য ট্রিপলেটগুলি প্রদান করে যার মধ্যে গুণফল m-এর সমান৷
-
ট্রিপলেটের সংখ্যার জন্য প্রাথমিক পরিবর্তনশীল গণনাকে 0 হিসাবে নিন।
-
ট্রিপলেটের প্রতিটি উপাদানের জন্য তিনটি লুপ ব্যবহার করে ট্রাভার্স অ্যারে।
-
0<=i
-
arr[i]*arr[j]*arr[k]==m কিনা পরীক্ষা করুন। যদি সত্য হয় তাহলে সংখ্যা বৃদ্ধি করুন।
-
সমস্ত লুপ গণনার শেষে শর্ত পূরণকারী মোট ট্রিপলেট সংখ্যা থাকবে।
-
ফলাফল হিসাবে গণনা ফেরত দিন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int productisM(int arr[], int n, int m){
int count = 0;
for (int i = 0; i < n-2; i++){
for (int j = i+1; j < n-1; j++){
for (int k = j+1; k < n; k++){
int prod=arr[i]*arr[j]*arr[k];
if(prod==m)
{ count++; }
}
}
}
return count;
}
int main(){
int Arr[]={ 1,2,3,0,2,4 };
int N=6; //length of array
int M=24;
cout <<endl<< "Number of triplets with product M : "<<productisM(Arr,N,M);
return 0;
} আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেNumber of triplets with product M: 4