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