একটি অ্যারে দেওয়া আছে এবং কাজ হল C++-এ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি ব্যবহার করে N দ্বারা বিভাজ্য সংখ্যাগুলো বের করা।
এই সমস্যা সমাধানের জন্য আমরা C++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরিতে উপস্থিত count_if() ফাংশনটি ব্যবহার করছি।
count_if() ফাংশন কী?
সিনট্যাক্স
count_if(LowerBound, UpperBound, function)
বিবরণ − এই ফাংশনটি অ্যারেতে কতগুলো উপাদান দেওয়া শর্তকে স্যাটিসফাই করে সেটি রিটার্ন করে। এটি তিনটি প্যারামিটার নেয়।
- Lower Bound − এটি অ্যারে বা অন্য যেকোনো সিকোয়েন্সের প্রথম উপাদানকে নির্দেশ করে।
- Upper Bound − এটি অ্যারে বা অন্য যেকোনো সিকোয়েন্সের শেষ উপাদানকে নির্দেশ করে।
- Function − এটি নির্দিষ্ট শর্তের ভিত্তিতে বুলিয়ান ভ্যালু রিটার্ন করে।
উদাহরণ
Input-: array[] = {2, 4, 1, 5, 8, 9} N = 4 Output-: ৪ দ্বারা বিভাজ্য উপাদান: ২ Input-: array[] = {1, 2, 3, 4, 5, 10} N = 2 Output: ২ দ্বারা বিভাজ্য উপাদান: ৩
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতি −
- ইন্টিজার টাইপের অ্যারেতে ইন্টিজার ভ্যালুগুলো ইনপুট নিন।
- বুল ফাংশন তৈরি করুন যা চেক করবে অ্যারেতে উপাদানটি ইউজার ইনপুট ভ্যালু N দ্বারা বিভাজ্য কিনা।
- count_if() ফাংশনটি কল করুন যা প্রথম এবং শেষ উপাদান এবং ফাংশনটি প্যারামিটার হিসেবে নেয়।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int n; // উপাদানটি n দ্বারা বিভাজ্য কিনা চেক করার ফাংশন bool check(int i) { if (i % n == 0) return true; else return false; } int main() { int arr[] = {2, 4, 1, 5, 8, 9}; n = 4; int size = sizeof(arr) / sizeof(arr[0]); int temp = count_if(arr, arr + size, check); cout<<"Elements divisible by "<<n<< ": " <<temp; return 0; }
আউটপুট
যদি উপরের কোডটি রান করি তবে নিচের আউটপুট জেনারেট হবে −
Elements divisible by 4: 2