Сегодня на уроке информатики рассказывали про то, как получать все простые числа, не превосходящие заданного числа, с метода, который называется решето эратосфена. метод заключается в следующем: пусть мы хотим найти все простые числа от 2 до 100. выпишем числа от 2 до 100, затем возьмем первое число (2), его оставим, а все остальные делящиеся на 2 числа вычеркнем. затем возьмем первое невычеркнутое число, отличное от 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*i< =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.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
papa6342829.04.2022 13:22
-
Danil54584921.06.2021 20:33
-
zhezhuzina200601.09.2021 14:35
-
KRMP03717.01.2021 06:39
-
Morenova12345626.05.2020 16:41
-
Belka121118.10.2022 14:21
-
STPcopy01.02.2020 21:15
-
natab0220.02.2021 11:14
-
alinasuga0420.03.2020 07:17
-
vladEfimenko111.02.2023 10:47
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.