Команда умножить на 3 в данном случае бессмыслена,так как 8*3=24,получается есть только одна программа -8 +2 +2 +2 +2 +2=18
Var a:array[1..8] of integer;i:integer;beginrandomize;for i:=1 to 8 do begin a[i]:=random(20-10) + 10; write(a[i],' '); end; writeln;for i:=1 to 8 do begin if (a[i] < 15 ) then a[i]:=2*a[i]; write(a[i],' '); end;
<span>end.</span>
Задача сформулирована не корректно, т.к. недостаточно информации о формировании сообщения.
В случае если мы передаём значение 15 то сообщение будет размером 1<span>111 бит.</span>
В худшем случае минимальное сообщение будет иметь размерность 100<span>000 бит
В лучшем случае сообщение может быть представлено как поток 2битных сообщений. Максимальная длина потока будет равна 32 сообщениям. В случае оптимистичного прогноза успех может произойти на первом сообщении. Таким образом мы считаем номер в потоке и значение бита. Если значение == 1 то в этом вагоне находятся друзья.
</span>
//PascalABC.NET версия 3.4.0.1677 от 17.06.18
//Если программа не запускается, то обновите версию
uses System.Linq;
function GetPrimes(n: integer): List<integer>;
begin
var primes := new List<integer>();
primes.Add(2);
for var i := 3 to n do
begin
if primes.All(x -> i mod x > 0 ) then
primes.Add(i);
end;
GetPrimes := primes;
end;
begin
var n := ReadInteger('n =');
var primes := GetPrimes(2 * n);
foreach var p in primes do
if primes.Contains(p + 2) then
writeln(p, ' ', p + 2);
end.
1. Нельзя использовать точки
2. Нельзя оставлять поле именования пустым
3. Не должно быть символов * / \ | ?