这段代码数值都不会超出范围,单独的子程序也是正确的,但是不知道为什么最大到9989899就卡死了,求大神帮忙啊~~~
代码如下:
var
a,b:longint;
function prime(k:longint):boolean;
var
mid,i:longint;
f:boolean;
begin
if k=1 then
begin
prime:=false;
exit;
end;
f:=true;
mid:=trunc(sqrt(k));
for i:=2 to mid do
if (k mod i)=0 then
f:=false;
prime:=f;
end;
procedure judge(n:longint);
var
s,ss:string;
len,i:integer;
begin
str(n,s);
len:=length(s);
ss:='';
for i:=len downto 1 do
ss:=ss+s[i];
if ss=s then
if prime(n)=true then
writeln(n);
end;
begin
read(a,b);
if odd(a)=false then
a:=a+1;
while a<=b do
begin
judge(a);
a:=a+2;
end;
end.