4. Для задачи из примера 4.5 выполните следующее задание: Введите число 5557. Почему появилась ошибка? Дополните массив констант простыми числами так, чтобы программа могла выдавать ответ для чисел, меньших 10 000. (Для этого можно воспользоваться самой программой или таблицей простых чисел.

Ошибка появилась потому, что максимальное проверяемое число по условию — 5000; и массив констант содержит проверочные простые числа до 71, а для числа 5557 нужно дополнить массив простыми числами до √5557 ≈ 74,5452. Для 10 000 нужно дополнить массив до √10000 = 100.

const s_n: array of integer =
(2, 3, 5, 7, 11, 13, 17, 19, 23, 29,
1, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97);
var n,i: integer;
begin
  writeln('Введите число');
  read(n);
  i := 0;
  while (s_n[i] * s_n[i] <= n)
    and (n mod s_n[i] <> 0) do
    i := i + 1;
  if s_n[i]*s_n[i] > n then
    writeln('Простое')
  else
  writeln('Составное')
end.
Другие задания