Get the best out of our app
GFG App
Open App
Browser
Continue

Count of pairs satisfying the given condition

Given two integers A and B, the task is to calculate the number of pairs (a, b) such that 1 ≤ a ≤ A, 1 ≤ b ≤ B and the equation (a * b) + a + b = concat(a, b) is true where conc(a, b) is the concatenation of a and b (for example, conc(12, 23) = 1223, conc(100, 11) = 10011). Note that a and b should not contain any leading zeroes.

Examples:

Input: A = 1, B = 12
Output:
There exists only one pair (1, 9) satisfying
the equation ((1 * 9) + 1 + 9 = 19)

Input: A = 2, B = 8
Output:
There doesn’t exist any pair satisfying the equation.

Approach: It can be observed that the above (a * b + a + b = conc(a, b)) will only be satisfied when the digits of an integer ≤ b contains only 9. Simply, calculate the number of digits (≤ b) containing only 9 and multiply with the integer a.

Below is the implementation of the above approach:

C++

 `// C++ implementation of the approach` `#include ` `using` `namespace` `std;`   `// Function to return the number of` `// pairs satisfying the equation` `int` `countPair(``int` `a, ``int` `b)` `{` `    ``// Converting integer b to string` `    ``// by using to_string function` `    ``string s = to_string(b);`   `    ``// Loop to check if all the digits` `    ``// of b are 9 or not` `    ``int` `i;` `    ``for` `(i = 0; i < s.length(); i++) {`   `        ``// If '9' doesn't appear` `        ``// then break the loop` `        ``if` `(s[i] != ``'9'``)` `            ``break``;` `    ``}`   `    ``int` `result;`   `    ``// If all the digits of b contain 9` `    ``// then multiply a with string length` `    ``// else multiply a with string length - 1` `    ``if` `(i == s.length())` `        ``result = a * s.length();` `    ``else` `        ``result = a * (s.length() - 1);`   `    ``// Return the number of pairs` `    ``return` `result;` `}`   `// Driver code` `int` `main()` `{` `    ``int` `a = 5, b = 101;`   `    ``cout << countPair(a, b);`   `    ``return` `0;` `}`

Java

 `// Java implementation of the approach` `class` `GFG` `{`   `// Function to return the number of` `// pairs satisfying the equation` `static` `int` `countPair(``int` `a, ``int` `b)` `{` `    ``// Converting integer b to String` `    ``// by using to_String function` `    ``String s = String.valueOf(b);`   `    ``// Loop to check if all the digits` `    ``// of b are 9 or not` `    ``int` `i;` `    ``for` `(i = ``0``; i < s.length(); i++)` `    ``{`   `        ``// If '9' doesn't appear` `        ``// then break the loop` `        ``if` `(s.charAt(i) != ``'9'``)` `            ``break``;` `    ``}`   `    ``int` `result;`   `    ``// If all the digits of b contain 9` `    ``// then multiply a with String length` `    ``// else multiply a with String length - 1` `    ``if` `(i == s.length())` `        ``result = a * s.length();` `    ``else` `        ``result = a * (s.length() - ``1``);`   `    ``// Return the number of pairs` `    ``return` `result;` `}`   `// Driver code` `public` `static` `void` `main(String[] args)` `{` `    ``int` `a = ``5``, b = ``101``;`   `    ``System.out.print(countPair(a, b));` `}` `}`   `// This code is contributed by PrinciRaj1992`

Python3

 `# Python3 implementation of the approach`   `# Function to return the number of` `# pairs satisfying the equation` `def` `countPair(a, b):` `    `  `    ``# Converting integer b to string` `    ``# by using to_function` `    ``s ``=` `str``(b)`   `    ``# Loop to check if all the digits` `    ``# of b are 9 or not` `    ``i ``=` `0` `    ``while` `i < (``len``(s)):`   `        ``# If '9' doesn't appear` `        ``# then break the loop` `        ``if` `(s[i] !``=` `'9'``):` `            ``break` `        ``i ``+``=` `1`   `    ``result ``=` `0`   `    ``# If all the digits of b contain 9` `    ``# then multiply a with length` `    ``# else multiply a with length - 1` `    ``if` `(i ``=``=` `len``(s)):` `        ``result ``=` `a ``*` `len``(s)` `    ``else``:` `        ``result ``=` `a ``*` `(``len``(s) ``-` `1``)`   `    ``# Return the number of pairs` `    ``return` `result`   `# Driver code` `a ``=` `5` `b ``=` `101`   `print``(countPair(a, b))`   `# This code is contributed by mohit kumar 29`

C#

 `// C# implementation of the approach` `using` `System;`   `class` `GFG` `{`   `// Function to return the number of` `// pairs satisfying the equation` `static` `int` `countPair(``int` `a, ``int` `b)` `{` `    ``// Converting integer b to String` `    ``// by using to_String function` `    ``String s = String.Join(``""``, b);`   `    ``// Loop to check if all the digits` `    ``// of b are 9 or not` `    ``int` `i;` `    ``for` `(i = 0; i < s.Length; i++)` `    ``{`   `        ``// If '9' doesn't appear` `        ``// then break the loop` `        ``if` `(s[i] != ``'9'``)` `            ``break``;` `    ``}`   `    ``int` `result;`   `    ``// If all the digits of b contain 9` `    ``// then multiply a with String length` `    ``// else multiply a with String length - 1` `    ``if` `(i == s.Length)` `        ``result = a * s.Length;` `    ``else` `        ``result = a * (s.Length - 1);`   `    ``// Return the number of pairs` `    ``return` `result;` `}`   `// Driver code` `public` `static` `void` `Main(String[] args)` `{` `    ``int` `a = 5, b = 101;`   `    ``Console.Write(countPair(a, b));` `}` `}`   `// This code is contributed by Rajput-Ji`

Javascript

 ``

Output:

`10`

Time Complexity: O(b)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Similar Reads
Related Tutorials