49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
''' ****** Задание 20 из 20 Параграф 2.4 *********
|
||
* Виталий Евгеньевич задумался:
|
||
|
||
А какая система счисления — самая выгодная?
|
||
|
||
По его логике, выгодной считается та система счисления, в которой сумма цифр числа — наибольшая.
|
||
А если таких систем несколько — он выбирает наименьшее основание из них.
|
||
|
||
Ваша задача — помочь ему это выяснить!
|
||
|
||
Формат ввода
|
||
Одно натурально число.
|
||
|
||
Формат вывода
|
||
Одно натуральное число из диапазона [2;10] — основание системы счисления с максимальной выгодой.
|
||
Если таких оснований несколько, выбирается наименьшее.
|
||
|
||
Пример 1
|
||
Ввод
|
||
|
||
12
|
||
Вывод
|
||
|
||
7
|
||
'''
|
||
|
||
|
||
if __name__ == "__main__":
|
||
decimal_number = int(input())
|
||
|
||
max_sum_digits = 0
|
||
best_base = 2
|
||
|
||
for base in range(2, 11):
|
||
temp_number = decimal_number
|
||
current_sum_digits = 0
|
||
|
||
if temp_number == 0:
|
||
current_sum_digits = 0
|
||
else:
|
||
while temp_number > 0:
|
||
current_sum_digits += temp_number % base
|
||
temp_number //= base
|
||
|
||
if current_sum_digits > max_sum_digits:
|
||
max_sum_digits = current_sum_digits
|
||
best_base = base
|
||
|
||
print(best_base) |