Каждый символ может принимать любое значение, точка, либо тире.
То есть мы можем получить и ... и _ _ _ и _._ и ещё кучу всего (это только из 3ёх, из 4ёх символов аналогично, но кол-во будет больше)
Для начала подсчитаем количество символов, которое можно закодировать с ёх знаков:

Далее подсчитаем, сколько символов можно закодировать с четырёх знаков:

Формула состоит из количества знаков, которыми можно записать число, возведённых в степень, равную количеству использования этих знаков.
Что бы узнать, сколько можно закодировать используя "не менее 3ёх и не более 4ёх сигналов", нужно просто сложить наши два результата, 8+16=24
Поделитесь своими знаниями, ответьте на вопрос:
//Pascal ABC.NET v3.0 сборка 1111
function Abso(n:integer):boolean;
Var
i,k:integer;
begin
k:=0;
for i:=1 to n div 2 do
if n mod i=0 then k:=k+i;
if k=n then Abso:=true else Abso:=false;
end;