卡西欧白色手表gshock:pascal 打印10000000内的质数

来源:百度文库 编辑:神马品牌网 时间:2024/05/01 17:35:15

用筛选法

var
i,j:longint;
bl:boolean;
begin
for i:=2 to 10000000 do
begin
bl:=false;
for j:=2+1 to i do
if i mod j=0
then bl:=true;
if bl=false;
then writeln(i);
end;
end.

var
i,j:longint;
bl:boolean;
begin
for i:=2 to 10000000 do
begin
bl:=false;
for j:=2+1 to i do
if i mod j=0
then bl:=true;
if bl=false;
then writeln(i);
end;
end.

楼上们的算法有误:你能输出任何结果吗?
正确的程序其实只需要一点小的改动:
var
i,j:longint;
bl:boolean;
begin
for i:=2 to 10000000 do
begin
writeln('2');
bl:=false;
for j:=2 to int(sqrt(i)) do
if i mod j=0 then bl:=true;
if bl=false then writeln(i);
end;
end.