Дано арифметическое выражение:
В записи чисел переменной x обозначена неизвестная цифра. При каком наименьшем значении переменной х, сумма цифр значения этого выражения, записанного в 7-ричной системе счисления, равна 34? В ответе для найденного значения x укажите значение выражения в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Способ 1
def summ(n):
s = 0
while n > 0:
s += n % 10
n //= 10
return s
def n7(n):
a = ’’
while n > 0:
a = str(n % 7) + a
n //= 7
return a
alf = ’0123456789abcdef’
for x in alf:
s1 = int(’9ac’ + x + ’36’, 16)
s2 = int(’5cd’ + x + ’da’, 16)
s = s1 + s2
if summ(int(n7(int(s)))) == 34:
print(s)
Способ 2
# в массив записываем цифры чисел, -1 обозначает x, A - 10, B - 11, C - 12, D - 13, E - 14, F - 15
s1 = [9, 10, 12, -1, 3, 6]
s2 = [5, 12, 13, -1, 13, 10]
# система счисления
ss = 16
for x in range(ss):
# присваиваем соответствующим элементам массива значения
s1[3], s2[3] = x, x
sm = 0
# переводим в 10-ю систему счисления
for j in range(len(s1)):
sm += s1[len(s1) - j - 1] * ss ** j
for j in range(len(s2)):
sm += s2[len(s2) - j - 1] * ss ** j
# переводим в 7-ю систему счисления
sm7 = ’’
t = sm
while t > 0:
sm7 = str(t % 7) + sm7
t //= 7
# находим сумму цифр числа
sm7 = int(sm7)
smc = 0
while sm7 > 0:
smc += sm7 % 10
sm7 = sm7 // 10
# проверяем условие
if smc == 34:
print(x, sm)