আমাদের চারটি পূর্ণসংখ্যা L, R, A এবং B দেওয়া হয়েছে। লক্ষ্য হল পরিসরে [L,R] সংখ্যার গণনা খুঁজে বের করা যা সম্পূর্ণরূপে A বা B বা উভয়কেই ভাগ করে।
আমরা L থেকে R থেকে এবং প্রতিটি সংখ্যার জন্য যদি সংখ্যা%A==0 বা সংখ্যা%B==0 হয় তাহলে ভাজকের সংখ্যা বৃদ্ধি করে এটি করব।
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − L=10, R=15, A=4, B=3
আউটপুট − A বা B − 2
এর ভাজকের সংখ্যাব্যাখ্যা −
Number 12 is fully divisible by 3 and 4. Number 15 is fully divisible by 3 only. Total divisors=2
ইনপুট − L=20, R=30, A=17, B=19
আউটপুট − A বা B − 0
এর ভাজকের সংখ্যাব্যাখ্যা − 20 এবং 30 এর মধ্যে কোন সংখ্যা A বা B বা উভয় দ্বারা সম্পূর্ণভাবে বিভাজ্য নয়।
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
আমরা চারটি চলক A, B, L এবং R.
নিয়েছি -
ফাংশন countDivisors(int l, int r, int a, int b) সবগুলিকে ইনপুট হিসাবে নেয় এবং A বা B বা উভয়েরই ভাজক ফেরত দেয় যা [L, R] রেঞ্জের মধ্যে থাকে৷
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
i=L থেকে i=R পর্যন্ত, যদি i%a==0 বা i%b==0 বৃদ্ধির সংখ্যা।
-
লুপের শেষে A বা B.
এর ভাজক হিসাবে গণনা করুন -
ফলাফল হিসাবে রিটার্ন গণনা।
উদাহরণ
#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; int R=15; int A=2; int B=5; cout <<endl<< "Total divisors of A and B : "<<countDivisors(L,R,A,B); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেTotal divisors of A and B : 7