চারটি ইন্টিজার L, R, A, B দেওয়া আছে। লক্ষ্য হল [L,R] রেঞ্জে যেসব সংখ্যা A বা B বা উভয়ের দ্বারা পুরোপুরি বিভাজ্য, তাদের গণনা করা।
L থেকে R পর্যন্ত ট্রাভার্স করা হয়। প্রতিটি সংখ্যা যদি number%A==0 বা number%B==0 হয়, count বাড়ানো হয়।
উদাহরণ
ইনপুট: L=10, R=15, A=4, B=3
আউটপুট: A বা B-এর ভাজক সংখ্যা: ২
ব্যাখ্যা: ১২, ৩ এবং ৪ দুটির দ্বারা বিভাজ্য। ১৫ শুধু ৩ দ্বারা বিভাজ্য। মোট ভাজক=২।
ইনপুট: L=20, R=30, A=17, B=19
আউটপুট: A বা B-এর ভাজক সংখ্যা: ০
ব্যাখ্যা: ২০ থেকে ৩০ পর্যন্ত কোনো সংখ্যা A বা B বা উভয়ের দ্বারা বিভাজ্য নয়।
অ্যাপ্রোচ
- A, B, L, R চারটি ভেরিয়েবল নেওয়া হয়।
countDivisors(int l, int r, int a, int b)ফাংশন সব গ্রহণ করে [L,R] রেঞ্জে A বা B বা উভয়ের ভাজক সংখ্যা রিটার্ন করে।- প্রাথমিক count ০।
- for লুপে i=L থেকে i<=R পর্যন্ত: i%a==0 বা i%b==0 হলে count++।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int countDivisors(int l, int r, int a, int b) {
int count = 0;
for (int i = l; i <= r; i++) {
if (i % a == 0 || i % b == 0) {
count++;
}
}
return count;
}
int main() {
int L = 5, R = 15, A = 2, B = 5;
cout << endl << "Total divisors of A and B : " << countDivisors(L, R, A, B);
return 0;
}
আউটপুট
Total divisors of A and B : 7