tikiin
09.01.2020 19:22

Сегодня Егор в школе проходил системы счисления, ему дали следующее определение представление числа в системе счисления: Представлением целого положительного числа n в k-ичной системе счисления (k ≥ 2) называется последовательность целых неотрицательных чисел a1, ..., as такая, что ai ≤ k - 1 для всех i = 1...s и a1 ≠ 0, а также as + as - 1 · k + as - 2 · k2 + ... + a1 · ks - 1 = n.

Например, представлением числа 6 в двоичной системе счисления является последовательность 1, 1, 0, т.к. 0 + 1 · 2 + 1 · 4 = 6, а представлением числа 120 в одиннадцатиричной системе счисления является последовательность 10, 10, т.к. 10 + 10 · 11 = 120.

Можно показать, что любое целое положительное число n представимо единственным образом в k-ичной системе счисления для любого k ≥ 2.

Егор считает красивыми последовательности, которые заканчиваются ровно на два нуля. Сегодня в учебнике он наткнулся на целое положительное число n, и он захотел получить из него как можно больше красивых последовательностей, переводя n в различные системы счисления. Ему стало интересно, сколько различных красивых последовательностей он сможет получить?

Однако, так как число n очень большое, без программирования ему не обойтись. К сожалению, программировать он не умеет, поэтому обратился за к вам. Напишите программу, которая по заданному n считает количество различных красивых последовательностей, которые из него можно получить.

Формат входных данных
В единственной строке входных данных находится единственное целое число n (1 ≤ n ≤ 10^18) – число, которое увидел Егор, идя из школы.

Формат результата
Выведите единственное число – ответ на задачу.

Примеры
Входные данные
8
Результат работы
0
Входные данные
12
Результат работы
1
Входные данные
100
Результат работы
3

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
DGOTVK
16.01.2023 14:25
Vara,b,c,d,x1,x2: real;
begin
writeln('Дано уравнение вида ax^2+bx+c=0');
Writeln ('Укажи переменную "a"');
readln(a);
Writeln ('Укажи переменную "b"');
readln(b);
Writeln ('Укажи переменную "c"');
readln(c);
if a = 0
 then writeln('Не квадратное уравнение!')
 else begin
      d:= sqr(b)-4*a*c;
      if d < 0 then writeln('Нет корней')
               else begin
                    x1:= (-b+sqrt(d))/2*a;
                    x2:= (-b-sqrt(d))/2*a;
                    writeln ('X1 =',x1,'  X2 =',x2);
                    end;
      end;
end.
0,0(0 оценок)
Ответ:
guskovzahar2011
06.03.2023 02:19
Const n=10; m=5;
var a:array[1..n,1..m+1] of integer;
i,j,k,sp,s:integer;
begin
Randomize;
writeln('  Результаты соревнований');
for i:=1 to n do
 begin
 s:=0;
 for j:=1 to m do
  begin
  a[i,j]:=random(50)+50;
  write(a[i,j]:4);
  s:=s+a[i,j];
  end;
  a[i,m+1]:=s;
  writeln(s:5);
 end;
write('k='); readln(k);
sp:=0;
for i:=1 to n do
 if a[i,m+1]>=k then sp:=sp+1;
writeln('sp=',sp);
end.

Пример:
  Результаты соревнований
  69  52  91  62  65  339
  70  53  96  56  97  372
  78  98  94  61  62  393
  62  86  50  58  95  351
  82  98  53  56  81  370
  75  64  56  85  54  334
  69  99  53  72  97  390
  55  75  66  59  61  316
  99  71  83  75  51  379
  91  73  53  88  79  384
k=350
sp=7
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота