Задание 14 (демо-2023). Операнды арифметического выражения записаны в системе счисления с основанием 15.

123x515 + 1x23315

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

    Решение задания на языках PascalABC.NET и Python приведено ниже.

 

PascalABC.NET

Python

##

foreach var x in range(0,15) do  begin

 var a:BigInteger:=15;

 var n:=a**4+2*a**3+3*a**2+x*a+5

    +a**4+x*a**3 +2*a**2+3*a+3;

 if n mod 14=0 then

  print( n div 14 ); end;

for x in range(0,15):

  n = 15**4+ 2*15**3+ 3*15**2+\ x*15+ 5+ 15**4+ x*15**3+\ 2*15**2+ 3*15+3

  if n % 14==0:

      print( n//14 )


    Для решения этого задания воспользуемся развёрнутой записью чисел. Первое число 123x515 представим в виде 1*15^4+2*15^3+3*15^2+x*15+5, второе число 1x23315 соответственно представим как 1*15^4+x*15^3+2*15^2+3*15+3.

    Реализация этой записи на PascalABC.NET и Python также практически аналогична, за исключением того, что в PascalABC.NET нужно использовать тип BigInteger, потому что функции возведения в степень ** и Power(a,b) возвращают всегда вещественное число, даже если основание и показатель степени – целые числа.
    Однако это ограничение можно обойти, если использовать новый тип данных BigInteger. Тогда функция будет возвращать результат с типом BigInteger, который уже можно использовать для работы с целочисленными функциями.

    Если полученное число делится на 14 (n mod 14=0, n%14==0), то выводим результат от деления на 14 (n div 14, n//14).


Zuletzt geändert: Montag, 22. Mai 2023, 19:06