START, END রেঞ্জ এবং একটি ধনাত্মক অ্যারে Arr[] দেওয়া আছে। লক্ষ্য হল [START, END] রেঞ্জে Arr[]-এর সব উপাদান দ্বারা বিভাজ্য সংখ্যাগুলির সংখ্যা বের করা।
রেঞ্জের প্রতিটি সংখ্যায় অ্যারের সব উপাদান দ্বারা বিভাজ্য কিনা চেক করা হয়।
অ্যারের সব উপাদানের LCM বের করে, রেঞ্জে LCM দ্বারা বিভাজ্য সংখ্যাগুলি গণনা করা হয়। এটি দ্রুত কাজ করে।
ইনপুট: START=1, END=20, Arr[]={2,4,8}
আউটপুট: সংখ্যা: ২ (৮, ১৬)
#includeusing namespace std; int getLCM(int a, int b){ int m = max(a, b); while(true){ if(m % a == 0 && m % b == 0) return m; m++; } } int getLCMArray(int arr[], int n){ int lcm = getLCM(arr[0], arr[1]); for(int i = 2; i < n; i++){ lcm = getLCM(lcm, arr[i]); } return lcm; } int divisiblebyArr(int start, int end, int arr[], int len){ int count = 0; int lcm = getLCMArray(arr, len); for (int i = start; i <= end; i++){ if(i % lcm == 0) count++; } return count; } int main(){ int START = 5, END = 20; int Arr[] = {2,4,8}; int len = sizeof(Arr)/sizeof(Arr[0]); cout << "অ্যারের সব উপাদান দ্বারা বিভাজ্য সংখ্যা: " << divisiblebyArr(START, END, Arr, len); return 0; }
উপরোক্ত কোড রান করলে আউটপুট:
অ্যারের সব উপাদান দ্বারা বিভাজ্য সংখ্যা: ২