作业帮 > 综合 > 作业

pascal问题(改错)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 05:49:07
pascal问题(改错)
一个自然数是素数,且它的数字位置经过任意对换后仍为素数,称为绝对素数.例如13.试找出所有这样的二位绝对素数.
var
i,a,b,x,j,k:longint; bz:boolean;
begin
for i:=10 to 54 do
begin
bz:=false;
for j:=2 to trunc(sqrt(i)) do
begin
bz:=false;
if i mod j0 then
begin
a:=i div 10;
b:=i mod 10;
x:=b*10+a;
bz:=false;
for k:=2 to trunc(sqrt(x)) do
if x mod j0 then bz:=true;
end;
end;
if bz=true then writeln(i,' ',x);
end;
end.
if i mod j0 不能说明i一定是素数,例如i=10,j=3时,10 mod 30.但10不为素数.
还有 "for k:=2 to trunc(sqrt(x)) do if x mod j0 then bz:=true;"的主循环体是k,内部怎么能用j.
主程序部分改成这样应该就没问题了.
for i:=10 to 54 do
begin
bz:=true;
for j:=2 to trunc(sqrt(i)) do
if i mod j=0 then begin bz:=false;break;end;
if bz then
begin
a:=i div 10;
b:=i mod 10;
x:=b*10+a;
for j:=2 to trunc(sqrt(x)) do
if x mod j=0 then begin bz:=false;break;end;
end;
if bz then writeln(i,' ',x);
end;