var
b:integer;
n,i,j,k,m,p:longint;
begin
for i:=4 to 500 do
begin
if i mod 2=0 then
begin
for j:=2 to i do
begin
b:=1;
for k:=2 to trunc(sqrt(j)) do
if j mod k=0 then
b:=0;
if b=1 then
begin
m:=i-j;
p:=j;
for k:=2 to trunc(sqrt(m)) do
if m mod k=0 then
b:=0;
end;
if b=1 then break;
end;
writeln(i,'=',p,'+',m);
end;
end;
end.
做了下修改,不过时间可能要长几毫秒
穷举+if then即可
var
b:integer;
n,i,j,k,m,p:longint;
begin
for i:=4 to 500 do
begin
if i mod 2=0 then
begin
for j:=2 to i do
begin
b:=1;
for k:=2 to trunc(sqrt(j)) do
if j mod k=0 then
b:=0;
if b=1 then
begin
m:=i-j;
p:=j;
for k:=2 to trunc(sqrt(m)) do
if m mod k=0 then
b:=0;
end;
if b=1 then break;
end;
writeln(i,'=',p,'+',m);
end;
end;
end.
var
b:boolean;
n,i,j,k,m,p:longint;
begin
for i:=4 to 500 do
begin
if i mod 2=0 then
begin
for j:=2 to i do
begin
b:=true;
for k:=2 to trunc(sqrt(j)) do
if j mod k=0 then
begin
b:=false;
break;
end;
if b then
begin
m:=i-j;
p:=j;
for k:=2 to trunc(sqrt(m)) do
if m mod k=0 then
begin
b:=false;
break;
end;
end;
if b then break;
end;
writeln(i,'=',p,'+',m);
end;
end;
end.
有点长..呵呵