Related Articles
Count of numbers in a range that does not contain the digit M and which is divisible by M.
• Last Updated : 25 Aug, 2020

Given three integers the lower range L ,the upper range U and a digit M. The task is to count all the numbers between L and U such that the number is divisible by M and also, it does not contain the digit M.
Examples:

```Input: M = 9 ,L = 16 , U = 26
Output: 1
Explanation:
Within this given range ,the number that
follows the above two given conditions is: 18 .

Input: M = 6 ,L = 88 , U = 102
Output: 2
Explanation:
Within this given range ,the numbers that
follows the above two given conditions are: 90 and 102 .
```

Approach:

• The idea is to iterate from the lower range(L) to the upper range(U) and for each number,
• we will store the distinct digits of the number in a num variable and will check if the set contains the digit M or not as per the given conditions. If the number does not contain the given digit M and is divisible by M, then the counter is incremented by 1.

## C++

 `// C++ implementation to illustrate  ` `// the program  ` `#include  ` `using` `namespace` `std;  ` ` `  `// Function to count all the numbers  ` `// which does not contain the digit 'M'  ` `// and is divisible by M  ` `void` `contain(``int` `L, ``int` `U, ``int` `M)  ` `{  ` `    ``int` `count = 0;  ` `    ``for``(``int` `j = L; j < U; j++)  ` `    ``{  ` `         `  `    ``// Storing all the distinct  ` `    ``// digits of a number  ` `    ``set num;  ` `    ``string str = to_string(j);  ` `    ``num.insert(str);  ` `         `  `    ``// Checking if the two conditions  ` `    ``// are satisfied or not  ` `    ``if` `(j % M == 0 and  ` `        ``num.find(to_string(M)) == num.end())  ` `    ``{  ` `        ``count += 1;  ` `    ``}  ` `    ``}  ` `    ``cout << count - 2;  ` `}  ` `     `  `// Driver code  ` `int` `main()  ` `{  ` `    ``// Lower Range  ` `    ``int` `L = 106;  ` `     `  `    ``// Upper Range  ` `    ``int` `U = 200;  ` `     `  `    ``// The digit  ` `    ``int` `M = 7;  ` ` `  `    ``contain(L, U, M);  ` `}  ` `     `  `// This code is contributed by BhupendraSingh  `

## Java

 `// Java implementation to illustrate  ` `// the program  ` `import` `java.util.*;  ` ` `  `class` `GFG{  ` `     `  `// Function to count all the numbers  ` `// which does not contain the digit 'M'  ` `// and is divisible by M  ` `static` `void` `contain(``int` `L, ``int` `U, ``int` `M)  ` `{  ` `    ``int` `count = ``0``;  ` `    ``for``(``int` `j = L; j < U; j++)  ` `    ``{  ` `         `  `        ``// Storing all the distinct  ` `        ``// digits of a number  ` `        ``HashSet num = ``new` `HashSet<>();  ` `        ``String str = Integer.toString(j);  ` `        ``num.add(str);  ` ` `  `        ``// Checking if the two conditions  ` `        ``// are satisfied or not  ` `        ``if` `(j % M == ``0` `&& !num.contains(  ` `            ``Integer.toString(M)))  ` `        ``{  ` `            ``count += ``1``;  ` `        ``}  ` `    ``}  ` `    ``System.out.println(count - ``2``);  ` `}  ` ` `  `// Driver code  ` `public` `static` `void` `main(String[] args)  ` `{  ` `     `  `    ``// Lower Range  ` `    ``int` `L = ``106``;  ` ` `  `    ``// Upper Range  ` `    ``int` `U = ``200``;  ` ` `  `    ``// The digit  ` `    ``int` `M = ``7``;  ` ` `  `    ``contain(L, U, M);  ` `}  ` `}  ` ` `  `// This code is contributed by jrishabh99  `

## Python3

 `# Python3 implementation to illustrate  ` `# the program  ` ` `  `# Function to count all the numbers  ` `# which does not contain the digit 'M'  ` `# and is divisible by M  ` `def` `contain (L,U,M):  ` `    ``count ``=` `0` `    ``for` `j ``in` `range` `(L,U``+``1``):  ` `         `  `        ``# Storing all the distinct  ` `        ``# digits of a number  ` `        ``num ``=` `set``(``str``(j))  ` `         `  `        ``# Checking if the two conditions  ` `        ``# are satisfied or not  ` `        ``if` `(j ``%` `M ``=``=` `0` `and` `str``(M) ``not` `in` `num):  ` `            ``count ``+``=` `1` `    ``print` `(count)  ` `     `  `#Driver code  ` `if` `__name__``=``=` `'__main__'``:  ` `     `  `    ``L ``=` `106` `# Lower Range  ` `    ``U ``=` `200` `# Upper Range  ` `    ``M ``=` `7` `# The digit  ` ` `  `    ``contain(L,U,M)  ` ` `  `# This code is contributed by parna_28  `

## C#

 `// C# implementation to illustrate ` `// the program ` `using` `System; ` `using` `System.Collections.Generic;  ` ` `  `class` `GFG{ ` `     `  `// Function to count all the numbers ` `// which does not contain the digit 'M' ` `// and is divisible by M ` `static` `void` `contain(``int` `L, ``int` `U, ``int` `M) ` `{ ` `    ``int` `count = 0; ` `    ``for``(``int` `j = L; j < U; j++) ` `    ``{ ` `         `  `        ``// Storing all the distinct ` `        ``// digits of a number ` `        ``HashSet<``string``> num = ``new` `HashSet<``string``>(); ` `         `  `        ``string` `str = j.ToString(); ` `        ``num.Add(str); ` ` `  `        ``// Checking if the two conditions ` `        ``// are satisfied or not ` `        ``if` `(j % M == 0 && !num.Contains(M.ToString()))  ` `        ``{ ` `            ``count += 1; ` `        ``} ` `    ``} ` `    ``Console.Write(count - 2); ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main(``string``[] args) ` `{ ` `     `  `    ``// Lower Range ` `    ``int` `L = 106; ` ` `  `    ``// Upper Range ` `    ``int` `U = 200; ` ` `  `    ``// The digit ` `    ``int` `M = 7; ` ` `  `    ``contain(L, U, M); ` `} ` `} ` ` `  `// This code is contributed by rutvik_56 `

Output:

```11
```

My Personal Notes arrow_drop_up
Recommended Articles
Page :