Answer to Question #176340 in Python for smiley

Question #176340
Maximum Product of the Digits
Given a range represented by two positive integers L and R. Find the number lying in the range having the maximum product of the digits.
Input

The first line of input will be an integer, denoting the number of test cases T.
The next T lines will contain two space-separated integers, denoting the L and R.
Output

The output should be T lines containing the the number with the maximum product of the digits in the range L and R for each test case.
Explanation

For example, if the given T is 2, read the L and R of the first test case in the next line. If the given L and R are 1 and 10 respectively. As 9 is the number with the maximum product of digits, the output for the first test case should be 9.
If the L and R are 15 to 30 respectively. The product of the digits of number 29 is 18. As 18 is the maximum product in the range, the output should be 29.
1
Expert's answer
2021-03-29T03:54:01-0400
# Product of Digits
def digits_product(n):
    if n == 0:
        return 0
    p = 1
    while n > 0:
        d = n % 10
        p *= d
        n //= 10
    return p


def max_dp(L, R):
    max_prod = digits_product(L)
    num = L
    for n in range(L+1, R+1):
        p = digits_product(n)
        if p > max_prod:
            mmax_prod = p
            num = n
    return num


T = int(input())
res = []
for i in range(T):
    line = input().split()
    L = int(line[0])
    R = int(line[1])
    res.append(max_dp(L,R))

for n in res:
    print(n)

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS