有关素数的算法 1.算法4:求前n个素数: programBasicMath_Prime;
const
maxn=1000;
var
pnum,n:longint;
p:array[1..maxn] of longint;
function IsPrime(x:longint):boolean;
var i:integer;
begin
for i:=1 to pnum do
if sqr(p)<=x then
begin
if x mod p=0 then
begin
IsPrime:=false;
exit;
end;
end else
begin
IsPrime:=true;
exit;
end;
IsPrime:=true;
end;
procedure main;
var x:longint;
begin
pnum:=0;
x:=1;
while(pnum<n) do
begin
inc(x);
if IsPrime(x) then
begin
inc(pnum);
p[pnum]:=x;
end;
end; end;
procedure out;
var i,t:integer;
begin
for i:=1 to n do
begin write(p:5);t:=t+1; if t mod10=0 then writeln; end;
end;
begin
readln(n); main;
out;
end.
|