求助:筛法求素数个数 运行错误
noip吧
全部回复
仅看楼主
level 2
nbxwj 楼主
求AB区间的素数个数
输入
一行,两个整数a,b,1<=a<b<=3000000
输出
a~b之间所有素数个数
样例输入
2 10
样例输出
4
我的解法如下,在Online Judge中总是运行错误
var
a,b:longint;
f:array[1..3000000] of boolean;
function pr(x:longint):longint;
var i,j,t:longint;
begin
fillchar(f,sizeof(f),true);
for i:=2 to trunc(sqrt(x)) do
begin
j:=i;
while j+i<=x do begin j:=j+i;f[j]:=false;end;
end;
t:=0;
for i:=2 to x do if f[i] then inc(t);
pr:=t;
end;
begin
readln(a,b);if a<2 then a:=2;
writeln(pr(b)-pr(a-1));
end.
2013年12月09日 11点12分 1
level 2
nbxwj 楼主
前后做了7个类似的角法,在windows下的freepascal和linux下的fpc中都运行通过,但在OJ上却通不过,怎么回事?
2013年12月09日 11点12分 2
level 11
喜闻乐见
2013年12月10日 06点12分 3
level 10
测测大数据吧。数组开的真吓人,会超时
2013年12月10日 10点12分 4
1