Сделал 20 задание
This commit is contained in:
parent
af7cb9942b
commit
5fd61b6603
49
lesson.20.py
Normal file
49
lesson.20.py
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
''' ****** Задание 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)
|
||||||
Loading…
Reference in a new issue