1) цикл выполниться 2 раза.
2) Паскаль не знаю, напишу программу на с++, может быть что-то поймешь
// PascalABC.NET 3.3, сборка 1547 от 07.10.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
Writeln('П=',a.Where(x->x<0).Aggregate(BigInteger(1),(x,y)->x*y))
end.
<u>Пример</u>
n= 15
-9 1 -6 -2 -9 4 5 -1 6 -6 6 -4 0 5 -10
П=233280
n= 100
4 5 10 -2 9 3 0 7 -2 1 9 -1 -1 -5 -7 5 -4 -6 7 4 -5 10 6 -1 1 -4 -2 5 -6 -10 0 0 -7 -1 -1 7 -6 -1 -3 4 3 -9 7 7 0 -5 7 1 -8 -1 9 6 1 9 6 5 9 1 7 2 -6 6 2 -2 -10 -2 -4 10 6 -3 0 7 8 -8 -10 -7 -7 10 10 -4 0 8 3 6 -8 5 10 -6 4 4 8 4 2 5 -1 8 0 -2 6 -9
П=14271704784175104000000
1.Программа алплаллалпдпдпдппжюппд
a, b = map(int, input().split())
answer = []
for i in range(a, b):
num = str(i)
length = len(num)
sum = 0
for y in num:
sum += int(y)**length
if sum == int(i):
answer.append(str(i))
if len(answer) == 0:
answer.append('-1')
print(' '.join(answer))
Если боишься сделать ошибку, то не бойся. Бери и делай. Будет ошибка - будешь её понимать, и исправлять.
Задача достаточно проста, чтобы её можно было решить без ошибок. Нуууу, если только пофантазировать, то можно предположить что кто-либо может забыть, что массивы могут быть как чётной, так и нечётной длины.