c cũng làm bài tìm số nguyên tố thứ n n <= 1000000
Code:
const fi='ngto.inp';
fo='ngto.out';
var f:text;
a:array[1..1000000] of longint;
n:longint;
procedure inp;
begin
assign(f,fi);
reset(f);
readln(f,n);
close(f);
end;
function nt(k,h:longint):boolean;
var i,l:longint;
begin
l:=trunc(sqrt(k));
nt:=false;
for i:=1 to h do
if a[i]<=l then
begin
if ((k mod a[i])=0) then exit;
end
else break;
nt:=true;
end;
procedure sol;
var i,k,x:longint;
begin
a[1]:=2;
a[2]:=3;
a[3]:=5;
i:=3;
x:=2;
k:=5;
repeat
k:=k+x;
x:=6-x;
if nt(k,i) then
begin
inc(i);
a[i]:=k;
end;
until i=n;
end;
procedure pri;
begin
assign(f,fo);
rewrite(f);
write(f,a[n]);
close(f);
end;
begin
inp;
sol;
pri;
end.
Bookmarks