Трехзначное число в системе счисления по основанию p может быть записано, как Разница между максимальным и минимальным трехзначными числами должна превышать десятичное число 200 (пока не будем учитывать дополнительное ограничение на несимметричность), т.е. В целых числах получаем условие p≥6, т.е. основание системы счисления не может быть меньше 6. Найдем, сколько трехзначных чисел можно получить в системе счисления с основанием 6: Симметричными будут числа вида 5х5, 4х4, 3х3, 2х2, 1х1, где х - любая из цифр по основанию 6. Итого получается пять групп, в каждой из которых шесть чисел, т.е. всего трехзначных симметричных чисел может быть 30. Следовательно, в системе счисления по основанию 6 можно записать 215-30=185 трехзначных несимметричных чисел, что меньше ограничения 200. Проверим систему счисления по основанию 7: Симметричными будут числа вида 6х6, 5х5, 4х4, 3х3, 2х2, 1х1, где х - любая из цифр по основанию 7. Итого получается шесть групп, в каждой из которых семь чисел, т.е. всего трехзначных симметричных чисел может быть 42. Следовательно, в системе счисления по основанию 7 можно записать 342-42=300 трехзначных несимметричных чисел, что превышает ограничение 200.
Последнее проверяемое число 7FF, поскольку большее число при удвоении будет четырехзначным, нарушая условие задания.
procedure Analyze(n: integer; var sd: integer; var has2: boolean); {Для заданного целого n возвращает: sd - сумму цифр в шестнадцатиричном представлении; has2 - true, если среди шестнадцитиричных цифр имеется хотя бы одна двойка.} const mask = $00F;
var i, r: integer;
begin has2 := false; sd := 0; for i := 1 to 3 do begin r := (n and mask); has2 := (has2 or (r = 2)); sd := sd + r; n := (n shr 4); end end;
function IsSuitable(n: integer): Boolean; {Проверяет, удовлетворяет ли число n набору условий}
var s1, s2: integer; has2, stub: boolean;
begin Analyze(n, s1, has2); Analyze(2 * n, s2, stub); IsSuitable := ((s1 = s2) and has2) end;
var i, n: integer;
begin n := 0; for i := $100 to $7FF do if IsSuitable(i) then n := n + 1; Writeln('Найдено чисел- ', n) end.
32 768 КБ / 240 КБ = 136.5(3) где 136 количество файлов
(при условии если не указан размер кластера)