Ответ:
есть пара неясностей в условии. если допускается такое, что единица и само число тоже являются делителями, то берите первый вариант решения, иначе - берите второе.
и еще кое-что: если нужно хотя бы 4 делителя, то оставьте все как есть, а если нужно ровно четыре делителя, в строчке if k> =4 then write(i: 3); уберите знак > .
1 вариант.
program zadacha;
var n, i, j, k : byte;
begin
write('введите число n');
for i: = 1 to n do begin
k: =0;
for j: = 1 to i do
if i mod j =0 then k: =k+1;
if k> =4 then write(i: 3);
2 вариант.
program zadacha;
var n, i, j, k : byte;
begin
write('введите число n');
for i: = 1 to n do begin
k: =0;
for j: = 2 to (i-1) do
if i mod j =0 then k: =k+1;
if k> =4 then write(i: 3);
1)-622
2)-26Е
3)-11001101
4)-110100100
5)-212.8125
2675,713₈
- 204,551₈
----------------
2471,142₈
Подробности. Вычитание производим "в столбик", начиная с самого правого разряда. Если в разряде уменьшаемое не меньше вычитаемого, выполняем вычитание в привычной десятичной системе. 3₈ - 1₈ = 2₈
Теперь переходим в соседний разряд. Тут уменьшаемое меньше вычитаемого, поэтому нужно "занять" единичку в старшем разряде. В десятичной системе эта единичка превращается в 10, а в восьмеричной - в восемь. 1₈ - 5₈ превратится в (1+8) - 5 = 4₈. Т.е. мы прибавляем к уменьшаемому эти 8, а дальше все считаем снова, как в привычной десятичной системе. 7₈ - 5₈ после "занятия" единицы превратится в
6₈ - 5₈ = 1₈ - тут все, как в делали в самом младшем разряде.
Остальная часть решения трудностей не представляет.
Ответ: 2471,142₈
Тут всё просто , чисто логика и простота.
№4=4
№5=3