Для перевода из двоичной в шестнадцатеричный надо код разделить на тетрады (на группы по 4 цифры): 0101 1101 1000 1010 1010 1111 0010 1010 Если слева недостаточно цифр до тетрады, то слева добавляем нули. Далее переводим тетрады в шестнадцатеричный код с таблицы: 0000 => 0 0001 => 1 0010 => 2 0011 => 3 0100 => 4 0101 => 5 0110 => 6 0111 => 7 1000 => 8 1001 => 9 1010 => A 1011 => B 1100 => C 1101 => D 1110 => E 1111 => F 0101 1101 1000 1010 1010 1111 0010 1010 = 5D8AAF2A
Для перевода в восьмеричный код делаем аналогично, только на двоичный код делим на группы по 3 цифры: 001 011 101 100 010 101 010 111 100 101 010 И также если не хватает до 3-ех цифр, то слева добавляем нули. Затем переводим по аналогичной таблице: 000 => 0 001 => 1 010 => 2 011 => 3 100 => 4 101 => 5 110 => 6 111 => 7 001 011 101 100 010 101 010 111 100 101 010 = 13542527452
// PascalABC.NET 3.6.3
uses School;
function Divizors(n: integer): List<integer>;
begin
var L := new List<integer>;
L.Add(1);
L.Add(n);
if n > 3 then
begin
var k := 2;
while (k * k <= n) and (k < 46341) do
begin
if n mod k = 0 then
begin
var t := n div k;
L.Add(k);
if k < t then L.Add(t)
else break
end;
Inc(k)
end;
L.Sort;
end;
Result := L
end;
begin
// 1
if ReadInteger.IsPrime then Println('YES')
else Println('NO');
// 2
ReadInteger.Factorize.First.Println;
// 3
var a := Divizors(ReadInteger);
Print(a.Count, a.Sum)
end.
0101 1101 1000 1010 1010 1111 0010 1010
Если слева недостаточно цифр до тетрады, то слева добавляем нули.
Далее переводим тетрады в шестнадцатеричный код с таблицы:
0000 => 0 0001 => 1 0010 => 2 0011 => 3 0100 => 4
0101 => 5 0110 => 6 0111 => 7 1000 => 8 1001 => 9
1010 => A 1011 => B 1100 => C 1101 => D 1110 => E
1111 => F
0101 1101 1000 1010 1010 1111 0010 1010 = 5D8AAF2A
Для перевода в восьмеричный код делаем аналогично, только на двоичный код делим на группы по 3 цифры:
001 011 101 100 010 101 010 111 100 101 010
И также если не хватает до 3-ех цифр, то слева добавляем нули.
Затем переводим по аналогичной таблице:
000 => 0 001 => 1 010 => 2 011 => 3
100 => 4 101 => 5 110 => 6 111 => 7
001 011 101 100 010 101 010 111 100 101 010 = 13542527452