Подскажите алгоритм - Free Pascal

Узнай цену своей работы

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

Как из целочисленного массива выбирать по одному элементу ,чтобы проверить простой ли он(без использования подпрограмм). Пробовал вложенными циклами, но получился бред.
Может с помощью "Решето́ Эратосфе́на".Прочитал в википедии но ни чего особо не понял.

Решение задачи: «Подскажите алгоритм»

textual
Листинг программы
  1. uses crt;
  2. const nmax=100;
  3. var a:array[1..nmax] of integer;
  4.     n,i,j,k,p:byte;
  5. begin
  6. clrscr;
  7. randomize;
  8. repeat
  9. write('Размер массива от 2 до ',nmax,' n=');
  10. readln(n);
  11. until n in [2..nmax];
  12. writeln('Массив');
  13. for i:=1 to n do
  14.  begin
  15.   a[i]:=1+random(50);
  16.   write(a[i]:4)
  17.  end;
  18. writeln;
  19. writeln('Простые числа');
  20. {самый простой и не оптимальный вариант}
  21. k:=0;
  22. for i:=1 to n do
  23. if a[i]>1 then{1 не простое}
  24.  begin
  25.   j:=2;{проверяем делимость начиная с 2}
  26.   p:=0;
  27.   while (j*j<=a[i])and(p=0) do{пока не больше корня из a[i] и не делится}
  28.   if a[i] mod j=0 then p:=1{если делится, дальше не проверяем}
  29.   else j:=j+1;{иначе дальше}
  30.   if p=0 then {если ни на что не делится}
  31.    begin
  32.     k:=1;{фиксируем что есть}
  33.     write(a[i]:4);{выводим}
  34.    end;
  35.  end;
  36. if k=0 then write('В массиве нет простых чисел');
  37. readln
  38. end.

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

  1. Объявлены переменные: n, i, j, k, p (byte); a: array[1..nmax] of integer;
  2. Задается размер массива от 2 до 100;
  3. Заполняется массив случайными числами от 1 до 50;
  4. Выводится заполненный массив;
  5. Находим простые числа в массиве;
  6. В самом простом и не оптимальном варианте, для каждого числа в массиве проверяется его делимость, начиная с 2;
  7. Если число делится на какое-то число из диапазона [2..корневая функция из этого числа], то оно не является простым числом;
  8. Если число не делится ни на одно число из диапазона [2..корневая функция из этого числа], то оно является простым числом;
  9. Все простые числа выводятся на экран;
  10. Если в массиве нет простых чисел, выводится сообщение В массиве нет простых чисел.

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


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

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

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы