Требуется найти n-ое число в последовательности простых чисел. n < 1000000. Помогите...

0 голосов
54 просмотров

Требуется найти n-ое число в последовательности простых чисел. n < 1000000. Помогите пожалуйста.


Информатика (274 баллов) | 54 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var n,p,k,i,j:integer; f:boolean;
begin
write('n = ');
readln(n);
p:=2;
for i:=2 to n do
 begin
 f:=false;
 while not f do
  begin
  p:=p+1;
  k:=0;
  for j:=2 to round(sqrt(p)) do
   if p mod j = 0 then k:=k+1;
  f:=k=0;
  end;
 end;
writeln(p);
end.

Пример:
n = 25
97

(194k баллов)
0

Спасибо конечно, но у меня вся проблема в том, что ограничения до 1 миллиона, и этот код по времени не проходит на тесте, где вводится 1000000

0

Да, если есть ограничение по времени, то этот вариант не подойдет. Нужно оптимизировать.

0

Можно использовать решето Аткина. Для Вашей задачи подойдет. Очень быстро считает и до 1000000 и больше.