We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
def best_divisor(n):
best_d = 0
largest_sum = 0
divisors = [i for i in range(1,n+1) if n % i == 0]
reversed_divisors = divisors[::-1]
for d in reversed_divisors:
sum_digits = 0
for digit in str(d):
sum_digits += int(digit)
if sum_digits > largest_sum:
largest_sum = sum_digits
best_d = d
elif sum_digits == largest_sum:
if best_d > d:
best_d = d
return best_d
print(best_divisor(n))
if name == 'main':
n = int(input().strip())
print(best_divisor(n))
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Best Divisor
You are viewing a single comment's thread. Return to all comments →
def best_divisor(n):
best_d = 0
largest_sum = 0
divisors = [i for i in range(1,n+1) if n % i == 0]
reversed_divisors = divisors[::-1]
for d in reversed_divisors:
sum_digits = 0
for digit in str(d):
sum_digits += int(digit)
if sum_digits > largest_sum:
largest_sum = sum_digits
best_d = d
elif sum_digits == largest_sum:
if best_d > d:
best_d = d
return best_d
print(best_divisor(n))
if name == 'main': n = int(input().strip())
print(best_divisor(n))