Проверка гипотезы Гольдбаха
Добавлено: 23 июн 2009, 17:25
Помогите разобраться с задачей.
Дано четное число n > 2. Проверить для него гипотезу Гольд¬баха; каждое четное n представляется в виде суммы двух простых чисел.
program p7;
var n,k,s1,s2,nv:integer;
sn1,sn2:boolean;
procedure vvod;
begin
writeln ('vvedite chetnoe chislo, bolshe dvyh: ');
readln (n);
if n <=2 then writeln ('vvedeno chislo menshe dvyh! ');
if (n mod 2)<>0 then writeln ('vvedeno nechetnoe chislo! ')
end;
function proverka (pch:integer): boolean;
var x,i:integer;
begin
proverka:=false;
x:=2;
i:=1;
while (x<pch) and (i=1) do
begin
if pch mod x=0 then i:=0 else inc(x);
end;
if i=1 then proverka:=true;
end;
begin
nv:=0;
for k:=1 to n-1 do
begin
if k<=n/2 then
begin
s1:=k;
s2:=n-k;
end;
vvod;
sn1:=proverka(s1);
sn2:=proverka(s2);
if sn1 and sn2 then
begin
inc(nv);
if nv=1 then writeln ('dlya chisla ',n,' gipotiza GoldBaha verna!!!.' );
writeln (n, '=', s1, '+', s2);
readln;
end;
end;
end.
Дано четное число n > 2. Проверить для него гипотезу Гольд¬баха; каждое четное n представляется в виде суммы двух простых чисел.
program p7;
var n,k,s1,s2,nv:integer;
sn1,sn2:boolean;
procedure vvod;
begin
writeln ('vvedite chetnoe chislo, bolshe dvyh: ');
readln (n);
if n <=2 then writeln ('vvedeno chislo menshe dvyh! ');
if (n mod 2)<>0 then writeln ('vvedeno nechetnoe chislo! ')
end;
function proverka (pch:integer): boolean;
var x,i:integer;
begin
proverka:=false;
x:=2;
i:=1;
while (x<pch) and (i=1) do
begin
if pch mod x=0 then i:=0 else inc(x);
end;
if i=1 then proverka:=true;
end;
begin
nv:=0;
for k:=1 to n-1 do
begin
if k<=n/2 then
begin
s1:=k;
s2:=n-k;
end;
vvod;
sn1:=proverka(s1);
sn2:=proverka(s2);
if sn1 and sn2 then
begin
inc(nv);
if nv=1 then writeln ('dlya chisla ',n,' gipotiza GoldBaha verna!!!.' );
writeln (n, '=', s1, '+', s2);
readln;
end;
end;
end.