перевод в систему счисления и подсчёт нулей
Как, не переводя число в определенную систему счисления, посчитать сколько получиться нулей на конце числа при переводе?
например:
ввод
5 2
вывод
0
при переводе 5 во 2 систему счисления
вот еще пример
ввод
10 2
вывод
1
при переводе 10 в 2 систему счисления получается 1010: на конце 1 ноль
Ответы (1 шт):
Автор решения: Oopss
→ Ссылка
def convert_to(number, base):
digits = '0123456789abcdefghijklmnopqrstuvwxyz'
if base > len(digits): return None
result = ''
while number > 0:
result = digits[number % base] + result
number //= base
return result
n, sysch = [int(i) for i in input('Через пробел введите: число основание ').split()]
col0 = 0
print(f'Число выглдит в {sysch}-ичной системе счисления {convert_to(n,sysch)}')
while (n % sysch) == 0:
col0 += 1
n //= sysch
print(col0)
Через пробел введите: число основание 5 2
Число выглядит в 2-ичной системе счисления 101
Количество нулей 0
Через пробел введите: число основание 10 2
Число выглядит в 2-ичной системе счисления 1010
Количество нулей 1
Через пробел введите: число основание 45678940 20
Число выглядит в 20-ичной системе счисления e59h70
Количество нулей 1