63ₓ = 3x⁰+2x¹+a₂x²+a₃x³+...
Понятно, что х>3, поскольку в системах счисления с x≤3 невозможно записать цифру 3.
Пусть x=4. x²=16, x³=64, ...
Поскольку даже минимально возможное значение х в третьей степени превышает 63, можно утверждать, что степеней выше 3 в представлении числа 63 нет.
Следовательно, 63=ax²+2x+3, ax²+2x-60=0, x=4,5,6, ...
Если х=8, то х²=64, поэтому для x>7 получаем а=0 и уравнение приобретает вид 2х-60=0 ⇒ х=30. Первое значение х найдено.
При х=4,5,6,7 получаем a=(60-2x)/x², a>0.
x=4 ⇒ a=(60-2×4)/4² = 52/16 = 4 - целое, подходит
x=5 ⇒ a=(60-2×5)/25 = 50/25 =2 - целое, подходит
x=6 ⇒ a=(60-2×6)/36 = 48/36 - нецелое
x=7 ⇒ a=(60-2×7)/49 = 46/49 - нецелое
Получили три значения x: 4, 5, 30
Проверим их.
1)х=4
63/4 = 15, остаток 3
15/4 = 3, остаток 2
3/4 = 0, остаток 3
Выписываем остатки в обратном порядке: 63=323₄
2) х=5
63/5 = 12, остаток 3
12/5 = 2, остаток 2
2/6 = 0, остаток 2
Выписываем остатки в обратном порядке: 63=223₅
3)х=30
63/30 = 2, остаток 3
2/30 = 0, остаток 2
Выписываем остатки в обратном порядке: 63=23₃₀
Ответ: 4, 5, 30
Дополнительная память для телефона или для Пк
Пусть длина номера = 5
Мощность алфавита = 40
Тогда для записи 1 сивола понадобится 6 бит (2^6 > 40 < 2^5)
6 * 5 = 30 бит на 1 номер. Номер кодируется целым кол-во байт, следовательно 30/8=3.75, отсюда 4 байта отводится на 1 номер.
4*50= 200 байт.
Var n, amount, max_digit, copy_of_n: integer;
begin
read(n);
copy_of_n := n;
amount := 0;
max_digit := copy_of_n mod 10;
while copy_of_n <> 0 do
begin {Находим наибольшую цифру в числе}
if max_digit < copy_of_n mod 10
then
max_digit := copy_of_n mod 10;
copy_of_n := copy_of_n div 10;
end;
copy_of_n := n;
while copy_of_n <> 0 do {Считаем количество таких цифр}
begin
if copy_of_n mod 10 = max_digit
then
amount := amount + 1;
copy_of_n := copy_of_n div 10;
end;
writeln(amount);
<span>end.</span>