求m到n之间的回文素数并统计个数
pascal吧
全部回复
仅看楼主
level 1
素数等等 楼主
var
n,m,i,w,a,b,c,g,s:integer;
ff,f:boolean;
begin
readln(n,m);
f:=true;
for i:=m to n do
for w:=1 to trunc(sqrt(i))do
if i mod w=0 then
begin
f:=false;
break
end;
if f:=false then begin
a:=i mod 10; b:=i div 10 ; c:=a*10+b;end;
for g:=1 to trunc(sqrt(c))do
begin
if c mod g=0 then
begin
ff:=false;
end;
if (f=false)and(ff=false)then begin
s:=s+1;
write(i);writeln; end;
begin
write(s);
end;
end;
end。这是我变得不对那位大哥帮我改一改不要太深奥
2011年04月21日 12点04分 1
level 1
素数等等 楼主
快啊要交的
急啊啊啊啊啊
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!各路大仙多多指教
2011年04月21日 12点04分 2
level 2
var
a1,a2,a3,a4:longint;
function fun1(a:longint):boolean;//判断回文数函数
var s:string; p,p1:longint;
begin
str(s,a);//数字转字符串
p1:=length(s);//测串长
for p:=1 to p1 div 2 do//从1到串长一半循环
if s[p]<>s[p1-p+1] then exit(false);//如果不是回文数以假跳出
exit(true);//以真跳出
end;
function fun2(a:longint):boolean;//判断素数函数
var p:longint;
begin
for p:=2 to trunc(sqrt(a)) do//这样你的用时将会被开平方,我们做程序要的是效率
if a mod p<>0 then exit(false);//如果不是素数以假跳出
exit(true);//以真跳出
end;
begin//主程序
readln(a1,a2);//n和n的值
for a3:=a1 to a2 do
if fun1(a3) then//两个分开会快一点,不然会多判断
if fun2(a3) then
inc(a4);//加一,此函数会比a4:=a4+1快
write(a4);
end.
2015年10月06日 08点10分 3
1