Given N numbers and two numbers L and R., the task is to print the count of numbers in the range [L, R] which are divisible by all numbers of the array.

**Examples:**

Input:a[] = {1, 4, 2], L = 1, R = 10Output :2

In range [1, 10], the numbers 4 and 8 are divisible all array elements.

Input :a[] = {1, 3, 2], L = 7, R = 11Output :0

A **naive **approach is to iterate from L to R and count the numbers which are divisible by all of the array elements.

**Time Complexity:** O((R-L) * N)

An **efficient** approach is to find the LCM of N numbers and then count the numbers that are divisible by LCM in range L and R. The numbers divisible by LCM till R are R/LCM. So using exclusion principle, the count will be (R/LCM – L-1/LCM).

Below is the implementation of the above approach.

## C++

`// C++ program to count numbers in a range ` `// that are divisible by all array elements` `#include <bits/stdc++.h>` `using` `namespace` `std;` ` ` `// Function to find the lcm of array` `int` `findLCM(` `int` `arr[], ` `int` `n)` `{` ` ` `int` `lcm = arr[0];` ` ` ` ` `// Iterate in the array` ` ` `for` `(` `int` `i = 1; i < n; i++) {` ` ` ` ` `// Find lcm` ` ` `lcm = (lcm * arr[i]) / __gcd(arr[i], lcm);` ` ` `}` ` ` ` ` `return` `lcm;` `}` ` ` `// Function to return the count of numbers` `int` `countNumbers(` `int` `arr[], ` `int` `n, ` `int` `l, ` `int` `r)` `{` ` ` ` ` `// Function call to find the` ` ` `// LCM of N numbers` ` ` `int` `lcm = findLCM(arr, n);` ` ` ` ` `// Return the count of numbers` ` ` `int` `count = (r / lcm) - ((l - 1) / lcm);` `}` ` ` `// Driver Code` `int` `main()` `{` ` ` `int` `arr[] = { 1, 4, 2 };` ` ` `int` `n = ` `sizeof` `(arr) / ` `sizeof` `(arr[0]);` ` ` `int` `l = 1, r = 10;` ` ` ` ` `cout << countNumbers(arr, n, l, r);` ` ` `return` `0;` `}` |

## Java

`// Java program to count numbers in a range ` `// that are divisible by all array elements` `class` `GFG` `{` ` ` `// Function to calculate gcd` `static` `int` `__gcd(` `int` `a, ` `int` `b)` `{` ` ` ` ` `// Everything divides 0 ` ` ` `if` `(a == ` `0` `|| b == ` `0` `)` ` ` `return` `0` `;` ` ` ` ` `// base case` ` ` `if` `(a == b)` ` ` `return` `a;` ` ` ` ` `// a is greater` ` ` `if` `(a > b)` ` ` `return` `__gcd(a - b, b);` ` ` ` ` `return` `__gcd(a, b - a);` `}` ` ` `// Function to find the lcm of array` `static` `int` `findLCM(` `int` `arr[], ` `int` `n)` `{` ` ` `int` `lcm = arr[` `0` `];` ` ` ` ` `// Iterate in the array` ` ` `for` `(` `int` `i = ` `1` `; i < n; i++) ` ` ` `{` ` ` ` ` `// Find lcm` ` ` `lcm = (lcm * arr[i]) / __gcd(arr[i], lcm);` ` ` `}` ` ` ` ` `return` `lcm;` `}` ` ` `// Function to return the count of numbers` `static` `int` `countNumbers(` `int` `arr[], ` `int` `n, ` ` ` `int` `l, ` `int` `r)` `{` ` ` ` ` `// Function call to find the` ` ` `// LCM of N numbers` ` ` `int` `lcm = findLCM(arr, n);` ` ` ` ` `// Return the count of numbers` ` ` `int` `count = (r / lcm) - ((l - ` `1` `) / lcm);` ` ` ` ` `return` `count;` `}` ` ` `// Driver Code` `public` `static` `void` `main(String args[])` `{` ` ` `int` `arr[] = { ` `1` `, ` `4` `, ` `2` `};` ` ` `int` `n = arr.length;` ` ` `int` `l = ` `1` `, r = ` `10` `;` ` ` ` ` `System.out.println(countNumbers(arr, n, l, r));` `}` `}` ` ` `// This code is contributed by Mukul Singh` |

## Python3

`# Python program to count numbers in ` `# a range that are divisible by all` `# array elements` `import` `math` ` ` `# Function to find the lcm of array` `def` `findLCM(arr, n):` ` ` ` ` `lcm ` `=` `arr[` `0` `];` ` ` ` ` `# Iterate in the array` ` ` `for` `i ` `in` `range` `(` `1` `, n ` `-` `1` `): ` ` ` ` ` `# Find lcm` ` ` `lcm ` `=` `(lcm ` `*` `arr[i]) ` `/` `math.gcd(arr[i], lcm);` ` ` ` ` `return` `lcm;` ` ` `# Function to return the count of numbers` `def` `countNumbers(arr, n, l, r):` ` ` ` ` `# Function call to find the` ` ` `# LCM of N numbers` ` ` `lcm ` `=` `int` `(findLCM(arr, n));` ` ` ` ` `# Return the count of numbers` ` ` `count ` `=` `(r ` `/` `lcm) ` `-` `((l ` `-` `1` `) ` `/` `lcm);` ` ` `print` `(` `int` `(count));` ` ` `# Driver Code` `arr ` `=` `[` `1` `, ` `4` `, ` `2` `];` `n ` `=` `len` `(arr);` `l ` `=` `1` `;` `r ` `=` `10` `;` ` ` `countNumbers(arr, n, l, r);` ` ` `# This code is contributed ` `# by Shivi_Aggarwal` |

## C#

`// C# program to count numbers in a range ` `// that are divisible by all array elements ` `using` `System;` ` ` `class` `GFG ` `{ ` ` ` `// Function to calculate gcd ` `static` `int` `__gcd(` `int` `a, ` `int` `b) ` `{ ` ` ` ` ` `// Everything divides 0 ` ` ` `if` `(a == 0 || b == 0) ` ` ` `return` `0; ` ` ` ` ` `// base case ` ` ` `if` `(a == b) ` ` ` `return` `a; ` ` ` ` ` `// a is greater ` ` ` `if` `(a > b) ` ` ` `return` `__gcd(a - b, b); ` ` ` ` ` `return` `__gcd(a, b - a); ` `} ` ` ` `// Function to find the lcm of array ` `static` `int` `findLCM(` `int` `[]arr, ` `int` `n) ` `{ ` ` ` `int` `lcm = arr[0]; ` ` ` ` ` `// Iterate in the array ` ` ` `for` `(` `int` `i = 1; i < n; i++) ` ` ` `{ ` ` ` ` ` `// Find lcm ` ` ` `lcm = (lcm * arr[i]) / __gcd(arr[i], lcm); ` ` ` `} ` ` ` ` ` `return` `lcm; ` `} ` ` ` `// Function to return the count of numbers ` `static` `int` `countNumbers(` `int` `[]arr, ` `int` `n, ` ` ` `int` `l, ` `int` `r) ` `{ ` ` ` ` ` `// Function call to find the ` ` ` `// LCM of N numbers ` ` ` `int` `lcm = findLCM(arr, n); ` ` ` ` ` `// Return the count of numbers ` ` ` `int` `count = (r / lcm) - ((l - 1) / lcm); ` ` ` ` ` `return` `count; ` `} ` ` ` `// Driver Code ` `public` `static` `void` `Main() ` `{ ` ` ` `int` `[]arr = { 1, 4, 2 }; ` ` ` `int` `n = arr.Length; ` ` ` `int` `l = 1, r = 10; ` ` ` ` ` `Console.WriteLine(countNumbers(arr, n, l, r)); ` `} ` `} ` ` ` `// This code is contributed by Ryuga ` |

## PHP

`<?php` `// PHP program to count numbers in a range ` `// that are divisible by all array elements` ` ` `// Function to calculate gcd` `function` `__gcd(` `$a` `, ` `$b` `)` `{` ` ` ` ` `// Everything divides 0 ` ` ` `if` `(` `$a` `== 0 || ` `$b` `== 0)` ` ` `return` `0;` ` ` ` ` `// base case` ` ` `if` `(` `$a` `== ` `$b` `)` ` ` `return` `$a` `;` ` ` ` ` `// a is greater` ` ` `if` `(` `$a` `> ` `$b` `)` ` ` `return` `__gcd(` `$a` `- ` `$b` `, ` `$b` `);` ` ` ` ` `return` `__gcd(` `$a` `, ` `$b` `- ` `$a` `);` `}` ` ` `// Function to find the lcm of array` `function` `findLCM(` `$arr` `, ` `$n` `)` `{` ` ` `$lcm` `= ` `$arr` `[0];` ` ` ` ` `// Iterate in the array` ` ` `for` `(` `$i` `= 1; ` `$i` `< ` `$n` `; ` `$i` `++) ` ` ` `{` ` ` ` ` `// Find lcm` ` ` `$lcm` `= (` `$lcm` `* ` `$arr` `[` `$i` `]) / ` ` ` `__gcd(` `$arr` `[` `$i` `], ` `$lcm` `);` ` ` `}` ` ` ` ` `return` `$lcm` `;` `}` ` ` `// Function to return the count of numbers` `function` `countNumbers(` `$arr` `, ` `$n` `, ` `$l` `, ` `$r` `)` `{` ` ` ` ` `// Function call to find the` ` ` `// LCM of N numbers` ` ` `$lcm` `= findLCM(` `$arr` `, ` `$n` `);` ` ` ` ` `// Return the count of numbers` ` ` `$count` `= (int)(` `$r` `/ ` `$lcm` `) -` ` ` `(int)((` `$l` `- 1) / ` `$lcm` `);` ` ` ` ` `return` `$count` `;` `}` ` ` `// Driver Code` `$arr` `= ` `array` `(1, 4, 2);` `$n` `= sizeof(` `$arr` `);` `$l` `= 1; ` `$r` `= 10;` `echo` `countNumbers(` `$arr` `, ` `$n` `, ` `$l` `, ` `$r` `);` ` ` `// This code is contributed` `// by Akanksha Rai` `?>` |

**Output:**

2