Заполнить одномерный массив простыми числами - Turbo Pascal (29055)

Формулировка задачи:

Выручайте. На этом форуме неправильное решение

Код к задаче: «Заполнить одномерный массив простыми числами - Turbo Pascal (29055)»

textual
uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
    n,m,i,k,lm:integer;
    f:boolean;
begin
clrscr;
repeat
write('Размер массива от 1 до ',nmax,' n=');
readln(n);
until n in [1..nmax];
a[1]:=2; {записываем в массив простых чисел одно известное}
k:=1;                    {число найденных простых чисел}
m:=3;                    {первый "кандидат" в простые числа}
while k<n do
 begin
  lm:=trunc(sqrt(m));
  f:=true;
  i:=1;
  while (i<=k) and  f and (a[i]<=lm)do
  {условие проверки делимости числа n}
  if m mod a[i]=0 then f:=false else i:=i+1;
  if f then
   begin
    k:=k+1;     {добавляем найденное n}
    a[k]:=m     {в массив простых чисел}
   end;
  m:=m+2       {следующий кандидат в простые числа}
 end;
for k:=1 to n do
write(a[k]:4);
readln
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

8   голосов, оценка 3.375 из 5


СДЕЛАЙТЕ РЕПОСТ