质数判断及求解

来源:百度知道 编辑:UC知道 时间:2024/06/17 01:48:33
下面这个pascal求解程序是用来求300到500的质数个数并求出最大10个质数的和,不知道哪个地方有问题,怎么运行不出结果?求高手指点。。。
var
i,j,m,sum:integer;
n:integer=0;
flag:boolean;
begin
sum:=0;
for i:=500 to 300 do
begin
flag:=true;
for j:=2 to trunc(sqrt(i)) do
begin
m:=i mod j;
if m=0 then
begin
flag:=false;
break;
end
else continue;
end;
if flag=true then
begin
n:=n+1;
if n<=10 then sum:=sum+i;
end;
end;
writeln('其中最大的10个质数之和k为:',sum);
writeln('总共有',n,'个质数');
end;

500到300要用downto……
最后要有 end. 不是end;

var i,j,m,sum:integer;
n:integer;
ok:boolean;
begin
n:=0;
sum:=0;
for i:=500 downto 300 do begin
ok:=true;
for j:=2 to trunc(sqrt(i)) do begin
if i mod j=0 then begin
ok:=false;
break;
end else continue
end;
if ok=true then begin
n:=n+1;
if n<=10 then sum:=sum+i;
end;
end;
writeln('其中最大的10个质数之和k为:',sum);
writeln('总共有',n,'个质数');
end.
至于错误
就是楼上说的

500到300要用downto……
最后要有 end. 不是end;
没明白的可以继续找我!

去别的地方问吧
这里是JAVA的地盘啊