একটি পূর্ণসংখ্যা অ্যারে এবং একটি মান k দেওয়া থাকলে, অ্যারেতে কতটি উপাদান k দিয়ে বিভাজ্য তা গণনা করতে হবে।
উদাহরণ
ইনপুট: arr = [4, 2, 6, 1, 3, 8, 10, 9], k = 2
বিভাজ্য উপাদান: 4, 2, 6, 8, 10 → মোট 5টি
অ্যালগরিদম
- সাধারণ পদ্ধতি: লুপ চালিয়ে প্রতিটি উপাদান için
arr[i] % k == 0চেক করুন। - দক্ষ পদ্ধতি (C++ STL):
count_ifফাংশন ব্যবহার করুন।
C++ কোড উদাহরণ (দুই পদ্ধতি)
#include <bits/stdc++.h>
using namespace std;
// Naive approach
int countDivisibleNaive(int arr[], int size, int k) {
int count = 0;
for (int i = 0; i < size; i++)
if (arr[i] % k == 0) count++;
return count;
}
// Efficient approach using STL
int countDivisibleSTL(vector& vec, int k) {
return count_if(vec.begin(), vec.end(),
[k](int x) { return x % k == 0; });
}
int main() {
int arr[] = {4, 2, 6, 1, 3, 8, 10, 9};
int k = 2;
int size = sizeof(arr) / sizeof(arr[0]);
cout << "Naive: " << countDivisibleNaive(arr, size, k) << endl;
vector vec(arr, arr + size);
cout << "STL: " << countDivisibleSTL(vec, k);
return 0;
}
ইনপুট
[4, 2, 6, 1, 3, 8, 10, 9], k = 2
আউটপুট
5