Решение 1: Пусть N – искомое основание системы счисления. Так как запись числа 63 в системе счисления с основанием N содержит 3 цифры, то N2.<= 63 <N3 . Этому условию удовлетворяют числа N = 4, 5, 6, 7, 8. Так как запись числа 63 в позиционной системе счисления с основанием N заканчивается на 0, то N – делитель числа 63. Следовательно, N = 7.
Замечание. Можно сделать проверку – записать число 63 в 7-чной системе счисления. Имеем:
63:7 = 9 (ост 0); 9:7 = 1 (ост 2) 1:7 = 0 (ост 1)Вывод: 6310=1207
Код на Ruby
t = {}
for i in 10000..99999
n, a, b, k =i, 0, 0, 0
while n > 0
k += 1
a += n % 10 if k % 2 == 0
b += n % 10 if k % 2 == 1
n = n / 10
end
s = [a,b].max.to_s + [a,b].min.to_s
next if not ["50", "1510", "150", "1520", "2015", "1925", "1015", "215", "2519"].include?(s)
if t[s] == nil then t.store(s, 1) else t[s] += 1 end
end
p t
вывод
{"50"=>15, "150"=>69, "1510"=>837, "2015"=>144, "215"=>168}