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
输入
一行,两个整数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.