Решето Эратосфена для нахождения простых чисел

В последовательности чисел 2, 3, ..., n последовательно вычеркиваем каждое второе число после 2. Первое незачеркнутое число простое (3). Далее вычеркиваем каждое третье число после 3. Первое незачеркнутое число простое (5). Затем вычеркиваем каждое пятое число после 5 и т.д. до тех пор, пока не дойдем до числа, большего корня из n (известно, что если целое положительное число n, неравное 1, не делится ни на одно положительное простое число, не большее корня из n то оно простое). Все числа, которые остаются, простые. Такой метод нахождения простых чисел называется решетом Эратосфена.

Текст программы

!Воронков Михаил группа 1660

program eratosfen

implicit none

integer max/500000/, n(500000), m, lastN/2/, k

!Файл со списком простых чисел

open(1,file='simpleNum.txt')

!Формируем массив

n(1)=0

do k=lastN,max,1

n(k)=k

enddo

!Выбираем простые числа

do while(lastN<=max)

do while(n(lastN)==0 .and. lastN<=max)

lastN=lastN+1

enddo

do m=2*lastN,max,lastN

n(m)=0

enddo

lastN=lastN+1

enddo

!Вывод в файл

do m=2,max,1

if(n(m)/=0) write(1,*) n(m)

enddo

end

Блок-схема

Соседние файлы в папке экзаменационная работа, отчёт, 1 сем. — 5