Задания
Версия для печати и копирования в MS Word
Тип 14 № 92556

Опе­ран­ды ариф­ме­ти­че­ско­го вы­ра­же­ния за­пи­са­ны в си­сте­ме счис­ле­ния с ос­но­ва­ни­ем 22.

27x9887622 + 26x5122 + 711x522

В за­пи­си чисел пе­ре­мен­ной x обо­зна­че­на не­из­вест­ная цифра из ал­фа­ви­та 22-⁠рич­ной си­сте­мы счис­ле­ния. Опре­де­ли­те наи­мень­шее зна­че­ние x, при ко­то­ром зна­че­ние дан­но­го ариф­ме­ти­че­ско­го вы­ра­же­ния крат­но 21. Для най­ден­но­го x вы­чис­ли­те част­ное от де­ле­ния зна­че­ния ариф­ме­ти­че­ско­го вы­ра­же­ния на 21 и ука­жи­те его в от­ве­те в де­ся­тич­ной си­сте­ме счис­ле­ния.

Ос­но­ва­ние си­сте­мы счис­ле­ния ука­зы­вать не нужно.

ИЛИ

Зна­че­ние ариф­ме­ти­че­ско­го вы­ра­же­ния

3 · 31258 + 2 · 6257 − 4 · 6256 + 3 ∙ 1255 − 2 ∙ 254 − 2025

за­пи­са­ли в си­сте­ме счис­ле­ния с ос­но­ва­ни­ем 25. Сколь­ко зна­ча­щих нулей со­дер­жит­ся в этой за­пи­си?

ИЛИ

Зна­че­ние ариф­ме­ти­че­ско­го вы­ра­же­ния 7170 + 7100 − x, где x  — целое по­ло­жи­тель­ное число, не пре­вы­ша­ю­щее 2030, за­пи­са­ли в 7⁠-⁠рич­ной си­сте­ме счис­ле­ния. Опре­де­ли­те наи­боль­шее зна­че­ние x, при ко­то­ром в 7⁠-⁠рич­ной за­пи­си числа, яв­ля­ю­ще­го­ся зна­че­ни­ем дан­но­го ариф­ме­ти­че­ско­го вы­ра­же­ния, со­дер­жит­ся ровно 71 нуль.

В от­ве­те за­пи­ши­те число в де­ся­тич­ной си­сте­ме счис­ле­ния.

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

s = sorted('0123456789qwertyuiopasdfghjklzxcvbnm')

for x in s[:23]:

x1 = '27' + str(x) + '98876'

x2 = '26' + str(x) + '51'

x3 = '711' + str(x) + '5'

res = int(x1, 22) + int(x2, 22) + int(x3, 22)

if res % 21 == 0:

res = res // 21

print(res)

break

 

Ответ: 276296118.

 

При­ведём ре­ше­ние Сер­гея Донец на PascalABC.NET:

uses School;

begin var ass:=(('0'..'9')+('A'..'Z')).ToArray;

var p:=22;//Ос­но­ва­ние си­сте­мы счис­ле­ния

var d:=p-1;

foreach var x in ass[:p] do begin

var m := Dec($'27{x}98876', p);

var n := Dec($'26{x}51', p); var k := Dec($'711{x}5', p);

var s:=m+n+k;

if s mod d=0 then begin Print(s div d);

exit;

end;

end;

end.

ИЛИ

При­ведём ре­ше­ние на языке Python.

s = 3 * 3125**8 + 2 * 625**7 - 4 * 625**6 + 3 * 125**5 - 2 * 25**4 - 2025

count = 0

while s > 0:

if s % 25 == 0:

count += 1

s //= 25

print(count)

 

Ответ: 10.

 

 

При­ведём ре­ше­ние Сер­гея Донец на PascalABC.NET:

uses School;

begin

( 3 * 3125bi ** 8 + 2 * 625bi ** 7

- 4 * 625bi ** 6 + 3 * 125bi ** 5

- 2 * 25bi ** 4 - 2025).digits(25)

.Count(x->x=0).Print;

end.

ИЛИ

При­ведём ре­ше­ние на языке Python.

for x in range (2030, 1, -1):

t = 7**170 + 7**100 - x

c = 0

while t != 0:

if t % 7 == 0:

c += 1

t //= 7

if c == 71:

print(x)

exit()

 

Ответ: 2029.

 

При­ведём ре­ше­ние Алек­сандра Коз­ло­ва на языке Python.

def seven(n):

return str(n % 7) + seven(n // 7) if n else ''

for x in range(2030, 1, -1):

s = seven(7**170 + 7**100 - x)

if s.count('0') == 71:

print(x)

break

 

При­ведём ре­ше­ние Сер­гея Донец на PascalABC.NET:

uses School;

begin

for var x:=2030 downto 1 do

if (7bi**170+7bi**100-x).Digits(7).CountOf(0)=71

then begin x.Print;exit;end;

end.