有关素数的算法

[复制链接]
发表于 2023-12-30 09:35:35 | 显示全部楼层 |阅读模式
有关素数的算法
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.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表