题目描述
如果两个素数之和的一半仍然是一个素数,则这三个素数可以组成一个等差素数组,如(3+7)/2=5,则(3,5,7)为一个等差素数组,编程求100以内的所有等差素数组。这里列出的3 5 7是符合题目要求的第一个等差素数组。
输入
无
输出
若干行,每行3个数。空格隔开!(每行的三个数从小到大排列,先按第一个数从小到大输出等差素数组,如果第一个数相同,再按第二个数从小到大输出)
样例输入
样例输出
3 5 7
…
满分代码:
var a:array[1..100] of integer;
i,j,t,b,c:integer;
function pd(x:integer):boolean;
var i:integer;
begin
pd:=true;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then begin pd:=false;break; end;
end;
begin
t:=0;
for i:=2 to 100 do
if pd(i) then
begin
inc(t);
a[t]:=i;
end;
for i:=1 to t-1 do
for j:=i+1 to t do
begin
b:=(a[i]+a[j]) div 2 ;
c:= (a[i]+a[j]) mod 2 ;
if (c=0) and pd(b) then writeln(a[i],' ',b,' ',a[j])
end;
end.