Дана одномерная масса 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 шт):
например мы выбираем 3, 4, 5, 6, 7, 9, 8, 10 из этих числа нужно найти простые и узнать который из простых самый маленький
когда задача сложная, не пытайтесь ее запихнуть в один код и потом гадать где ошибка, разбейте ее на 2 части
напишите функцию
isPrimeпроверки является ли числоxпростым, для чего его надо разделить на все число от 2 доsqrt(x)включительно (т.е. корень надо округлить)пройдитесь по массиву чисел и проверять, является ли число простым
2.1) если число простое, то сравнивать его с ранее найденным минимальным простым числом и если оно меньше - присваивать минимальному простому числу найденное число
2.2) поскольку изначальное никаких простых чисел не найдено, то минимальному простому числу можно присвоить значением -1 и тогда 2.1) будет выглядеть так:
есть текущее простое число меньше минимального ИЛИ минимальное простое число равно -1 то
присвоить минимальному простому числу текущее простое число