Дана одномерная масса n. Сделать программу, которая будет печатать простые числа и самые маленькие из них

Задача:

Дана одномерная масса n. Сделать программу, которая будет печатать простые числа и самые маленькие из них

Пожалуйста найдите ошибку

var x:array[1..100]of integer;
    n,i,j,k,min:integer;
    f:boolean;
begin
readln(n);
for i:=1 to n do
  readln(x[i]);
for i:=1 to n do
  f:=true;
for j:=2 to x[i]-1 do
  if x[i] mod j=0 then
    f:=false;
  if f=true then
    x[i]:=min;
  for j:=2 to k do
    if x[i]<min then
      min:=x[i];
    write(min);
  end.

Ответы (1 шт):

Автор решения: Zhihar

например мы выбираем 3, 4, 5, 6, 7, 9, 8, 10 из этих числа нужно найти простые и узнать который из простых самый маленький

когда задача сложная, не пытайтесь ее запихнуть в один код и потом гадать где ошибка, разбейте ее на 2 части

  1. напишите функцию isPrime проверки является ли число x простым, для чего его надо разделить на все число от 2 до sqrt(x) включительно (т.е. корень надо округлить)

  2. пройдитесь по массиву чисел и проверять, является ли число простым

2.1) если число простое, то сравнивать его с ранее найденным минимальным простым числом и если оно меньше - присваивать минимальному простому числу найденное число

2.2) поскольку изначальное никаких простых чисел не найдено, то минимальному простому числу можно присвоить значением -1 и тогда 2.1) будет выглядеть так:

есть текущее простое число меньше минимального ИЛИ минимальное простое число равно -1 то 
    присвоить минимальному простому числу текущее простое число
→ Ссылка