Заполнить одномерный массив простыми числами - 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.

Объяснение кода листинга программы

  1. Создается подключение к библиотеке crt.
  2. Объявляются константы и переменные: nmax, n, m, i, k, lm, f.
  3. Очищается экран с помощью функции clrscr.
  4. Пользователю предлагается ввести размер массива от 1 до nmax.
  5. Записывается в массив a первое простое число, равное 2.
  6. Инициализируются переменные k и m: k=1, m=3.
  7. Запускается цикл while, который будет выполняться до тех пор, пока k меньше n и все числа в массиве a меньше или равны lm.
  8. В цикле выполняется проверка делимости числа n на каждое число в массиве a. Если число m делится на a[i] без остатка, то переменная f устанавливается в false, иначе i увеличивается на 1.
  9. Если значение переменной f равно true, то увеличивается значение переменной k на 1 и в массив a записывается число m.
  10. После завершения внутреннего цикла while, если значение переменной f равно true, то выполняется шаг 9.
  11. Для каждого числа k от 1 до n выполняется операция записи в массив a значения a[k].
  12. Выполняется операция чтения из массива a значений, которые соответствуют найденным простым числам.
  13. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.375 из 5
Похожие ответы