var n, m, max, k, i: integer; ar: array of integer;
function CountOfDel(n: integer): integer; var i, k: integer; begin if n>0 then begin for i := 1 to n do if n mod i = 0 then inc(k); end else for i:= n to -1 do if n mod i = 0 then inc(k); CountofDel := k; if n=0 then CountofDel:=0; end;
begin readln(n, m); k := 0; max := 0; for i := n to m do begin if CountOfDel(i)=0 then begin writeln('0'); exit; end; if CountOfDel(i) > max then begin k := 1; setlength(ar, k); ar[k - 1] := i; max := CountOfDel(i); end else if CountOfDel(i) = max then begin inc(k); setlength(ar, k); ar[k - 1] := i; end; end; for i := 0 to k - 1 do write(ar[i]:4); end.
1. Восьмеричное число записываем двоичными триадами (с конца по 3 разряда), заменяя каждую 8-ю цифру двоичной триадой, потом записываем двоичными тетрадами (с конца по 4 разряда) и каждую тетраду заменяем 16-й цифрой. 754(8) = 111 101 100 (2) = 1 1110 1100 (2) = 1EC (16) ответ 3) 2. ответы даны в двоичной системе, в нее все и переводим. A = 9D(16) = 1001 1101(2); B = 237(8) = 10 011 111 (2) = 1001 1111(2) Неравенство записано словами как-то странно. Если подразумевалось A<C<B, то ответ 1001 1110, т.е. 2) А если A<C и A<B, то ответы 2), 3), 4), поэтому наверно все же условие было A<C<B. 3. Тут все так же. A = F7(16) = 1111 0111 (2); B = 371(8) = 11 111 001(2) - 1111 1001(2) Неравенству A<C<B удовлетворяет ответ 4) 4. Поскольку кроме "удобных" для сравнения систем по основанию 16,8,2 есть число в десятичной системе, переведем все числа в 16-ю - это наиболее быстро (минимум делений). 347(8) = 11 100 111(2)= 1110 0111(2)=E7(16); 1110 0101(2) = E5(16); 232(10)/16 = 14, остаток 8 -> 232(10) = E8(16) Сравниваем E6, E7, E5, E8: наименьшее E5, т.е. 11100101(2) 5. Аналогичное решение. 234(8) = 10 011 100(2) = 1001 1100(2) = 9C(16); 1001 1010(2) = 9A(16); 153(10)/16=9, остаток 9 -> 153(10) = 99(16) Сравниваем 9B, 9C, 9A, 99: наибольшее 9С, т.е. 234(8)
var
n, m, max, k, i: integer;
ar: array of integer;
function CountOfDel(n: integer): integer;
var
i, k: integer;
begin
if n>0 then
begin
for i := 1 to n do
if n mod i = 0 then inc(k);
end
else
for i:= n to -1 do
if n mod i = 0 then
inc(k);
CountofDel := k;
if n=0 then
CountofDel:=0;
end;
begin
readln(n, m);
k := 0;
max := 0;
for i := n to m do
begin
if CountOfDel(i)=0 then
begin
writeln('0');
exit;
end;
if CountOfDel(i) > max then
begin
k := 1;
setlength(ar, k);
ar[k - 1] := i;
max := CountOfDel(i);
end
else
if CountOfDel(i) = max then
begin
inc(k);
setlength(ar, k);
ar[k - 1] := i;
end;
end;
for i := 0 to k - 1 do
write(ar[i]:4);
end.
Пример ввода:
1 10
Пример вывода:
6 8 10
754(8) = 111 101 100 (2) = 1 1110 1100 (2) = 1EC (16)
ответ 3)
2. ответы даны в двоичной системе, в нее все и переводим.
A = 9D(16) = 1001 1101(2); B = 237(8) = 10 011 111 (2) = 1001 1111(2)
Неравенство записано словами как-то странно.
Если подразумевалось A<C<B, то ответ 1001 1110, т.е. 2)
А если A<C и A<B, то ответы 2), 3), 4), поэтому наверно все же условие было A<C<B.
3. Тут все так же.
A = F7(16) = 1111 0111 (2); B = 371(8) = 11 111 001(2) - 1111 1001(2)
Неравенству A<C<B удовлетворяет ответ 4)
4. Поскольку кроме "удобных" для сравнения систем по основанию 16,8,2 есть число в десятичной системе, переведем все числа в 16-ю - это наиболее быстро (минимум делений).
347(8) = 11 100 111(2)= 1110 0111(2)=E7(16);
1110 0101(2) = E5(16);
232(10)/16 = 14, остаток 8 -> 232(10) = E8(16)
Сравниваем E6, E7, E5, E8: наименьшее E5, т.е. 11100101(2)
5. Аналогичное решение.
234(8) = 10 011 100(2) = 1001 1100(2) = 9C(16);
1001 1010(2) = 9A(16);
153(10)/16=9, остаток 9 -> 153(10) = 99(16)
Сравниваем 9B, 9C, 9A, 99: наибольшее 9С, т.е. 234(8)