Сегодня на уроке информатики ведали про то, как получать все простые
Сегодня на уроке информатики ведали про то, как получать все обыкновенные числа, не превосходящие заданного числа, с поддержкою способа, который называется решето Эратосфена. Способ содержится в последующем: пусть мы желаем найти все простые числа от 2 до 100. Выпишем числа от 2 до 100, затем возьмем 1-ое число (2), его оставим, а все другие делящиеся на 2 числа вычеркнем. Потом возьмем 1-ое невычеркнутое число, хорошее от 2, это 3. Его оставим, а все другие еще невычеркнутые и делящиеся на 3 вычеркнем. Потом вновь возьмем первое невычеркнутое число, хорошее от 2 и 3, это 5, его оставим, а все другие еще невычеркнутые и делящиеся на 5 вычеркнем. И так дальше. В итоге останутся невычеркнутыми только обыкновенные числа. Игорю этот метод очень понравился и он решил с его подмогою отыскать все обыкновенные числа, не превосходящие 954530. Какое число он вычеркнет заключительным? Считаем, что каждое число может быть вычеркнуто ровно один раз. То есть, если 30 вычеркнули как делящееся на 2, то вычеркнуть его же как делящееся на 3 мы теснее не можем.
Задать свой вопросProgram Resheto;
const n=954530;
var i,j,last,k:integer;
b:array[1..n] of boolean;
begin
for j:=1 to n do b[j]:=true; ///сначала все числа не вычеркнуты
b[1]:=false; ///единицу вычеркиваем сходу
i:=2;k:=0; ///k - количество отысканных обычных чисел
while i*ilt;=n do
begin
for j:=i+1 to n do
begin
if (b[j]) then ///если число теснее вычеркнуто,то ничего не делаем
begin
if (j mod i=0) then begin last:=j; b[j]:=false; end; ///если число делится,то запоминаем его в last и вычеркиваем из решета
end;
end;
inc(i);
end;
for j:=2 to n do if b[j] then inc(k); ///считаем количество
writeln; writeln('Заключительнее вычеркнутое: ',last);writeln('Найдено обычных чисел: ',k);
for j:=2 to n do if b[j] then write(j,' '); ///выводим все обыкновенные числа через пробел
end.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.