var i,j,n:longint; f:boolean; begin writeln('Введите число'); readln(n); if n<2 then writeln('Простых делителей нет') else begin write('Число ',n,' ','= 1'); for i:=2 to n do if n mod i=0 then begin f:=true; j:=2; while f and(j<=round(sqrt(i/2)))do begin if i mod j=0 then f:=false else j:=j+1; end; if f then write('*',i); end; end; end.
11001101₂ = 315₈
100000011₂ = 403₈
110110110₂ = 666₈
1237₈ = 29F₁₆
3210₈ = 688₁₆
41562₈ = 4372₁₆
Объяснение:
Таблица триад:
0 - 000
1 - 001
2 - 010
3 - 011
4 - 100
5 - 101
6 - 110
7 - 111
11001101₂ = 315₈
Разбиваем число на триады (отделяем по 3 символа, начиная справа, если символов не хватает, дописываем 0 слева)
Переводим числа используя таблицу триад
Записываем снизу вверх
101 - 5
001 - 1
011 - 3
100000011₂ = 403₈
011 - 3
000 - 0
100 - 4
110110110₂ = 666₈
110 - 6
110 - 6
110 - 6
Таблица тетрад:
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001
10 - 1010
11 - 1011
12 - 1100
13 - 1101
14 - 1110
15 - 1111
1237₈ = 29F₁₆
Переведём каждую цифру в триаду
1 - 001
2 - 010
3 - 011
7 - 111
Запишем их в строку и переформируем в тетрады (отделяем по 4 символа, начиная справа, если символов не хватает, дописываем 0 слева)
001 010 011 111
Переводим числа используя таблицу триад
Записываем снизу вверх
1111 - 15
1001 - 9
0010 - 2
3210₈ = 688₁₆
3 - 011
2 - 010
1 - 001
0 - 000
011 010 001 000
1000 - 8
1000 - 8
0110 - 6
41562₈ = 4372₁₆
4 - 100
1 - 001
5 - 101
6 - 110
2 - 010
100 001 101 110 010
0010 - 2
0111 - 7
0011 - 3
0100 - 4
В качестве цифр шестнадцатеричной системы счисления обычно используются цифры от 0 до 9 и латинские буквы от A до F.
A₁₆ = 10₁₀ B₁₆ = 11₁₀ C₁₆ = 12₁₀ D₁₆ = 13₁₀ E₁₆ = 14₁₀ F₁₆ = 15₁₀
Таблицы триад и тетрад - это перевод первых чисел 10 системы счисления в двоичную с дописыванием 0 слева
var i,j,n:longint;
f:boolean;
begin
writeln('Введите число');
readln(n);
if n<2 then writeln('Простых делителей нет')
else
begin
write('Число ',n,' ','= 1');
for i:=2 to n do
if n mod i=0 then
begin
f:=true;
j:=2;
while f and(j<=round(sqrt(i/2)))do
begin
if i mod j=0 then f:=false
else j:=j+1;
end;
if f then write('*',i);
end;
end;
end.
Тестовое решение:
Введите число
2345
Число 2345 = 1*5*7*35*67