nephalim, простые числа могут быть только целыми. Более того, простыми считаются только натуральные. А вы говорите о действительных.
Уберите предметную область из задачи, которая сюда притянута за уши, и всё станет намного яснее:
Дан массив натуральных чисел, не превышающих 31. Найти порядковый номер второго по счёту простого числа в массиве.
{$R-}
program N98285012;
const
k: byte = 0;
type
TArray = array[1 .. 1] of byte;
var
Days: ^TArray;
N, i, Prime: byte;
begin
randomize;
N := random(196) + 5;
GetMem(Days, N * sizeof(byte));
writeln('Дни рождения шеренги из ', N, ' школьников:');
for i := 1 to N do
begin
Days^[і] := random(31) + 1;
write(Days^[і]:4)
end;
writeln;
i := 0;
while (k < 2) and (i < N) do
begin
inc(i);
Prime := 2;
while (sqr(Prime) <= Days^[і]) and (Days^[і] mod Prime > 0) do
inc(Prime, 1 + ord(Prime > 2));
if (Days^[і] > 1) and (Days^[і] mod Prime > 0) then
inc(k)
end;
if k < 2 then
writeln('Нет двух школьников, у которых день рождения простое число.')
else
writeln('Номер второго школьника, чей день рождения простое число: ', i);
readln;
FreeMem(Days, N * sizeof(byte))
end.