主题:哥德巴赫猜想 问题
QQ331373582
[专家分:1500] 发布于 2005-06-11 15:18:00
输入一个大于4,而且是偶数的书。
证明,如果这个数是2个素数的和。那么就打印出来。else 输出 NO!!
要用自定义函数!!!!
答对+30 分
回复列表 (共15个回复)
11 楼
Keita [专家分:30] 发布于 2005-06-23 19:03:00
var a,b,c,d,f,n:longint;
begin
readln(n);
if (n mod 2<>0) then
begin
writeln('WRONG!!');
halt;
end;
for a:=2 to n div 2 do
begin
f:=0;
for b:=2 to trunc(sqrt(a)) do
if (a mod b=0) then
begin
f:=1;break;
end;
if f=0 then
begin
c:=n-a;
for b:=2 to trunc(sqrt(c)) do
if (c mod b=0) then
begin
f:=1;break;
end;
if f=0 then
begin
writeln(n,'=',a,'+',c);
halt;
end;
end;
end;
writeln('No!!');
end.
12 楼
flyingfree [专家分:90] 发布于 2005-07-05 17:16:00
本人原创,语法错误请别找我……
program gdbh;
var
i,j,num:integer;
function prime(number:integer):boolean;
var
i:integer;
tmp:boolean;
begin
tmp:=true;
for i:=1 to trunc(sqrt(number)) do
if number mod i:=0 then begin
tmp:=false;
break;
end;
prime:=tmp;
end;
begin
write('N=');
readln(num);
if (num mod 2 <>0) or (num<=4) then begin
write('Wrong number!');
halt;
end;
for i:=2 to num div 4-1 do begin
j:=2*i-1;
if prime(j)and prime(num-j) then begin
writeln(j:5,num-j:5);
break;
end;
end;
end.
13 楼
xpycc [专家分:410] 发布于 2005-07-06 11:47:00
==
14 楼
xpycc [专家分:410] 发布于 2005-07-06 11:59:00
刚学pascal时写的,可能有些忘记了~~~~~~~~~
program Godbaha;
label 100;
var
n,p,q:integer;
function prime(x:integer):boolean; {判断是否为素数}
var
i:integer;
flag:boolean;
begin
flag:=true;
if x=1 then flag:=false
else
for i:=2 to round(sqrt(x)) do
if x mod i=0 then flag:=false;
prime:=flag;
end;
begin
repeat
readln(n);
until (not odd(n))and(n>2); {保证输入的是偶数,且大于2}
p:=2;
repeat {找数的主循环}
if p>n then {当p>n时,输出no!}
begin
writeln('no!');
goto 100; {跳出循环,有些忘记了,好像是这样的}
end;
repeat
if p<3 then p:=p+1 else p:=p+2;
until prime(p); {找质数p}
q:=n-p;
until prime(q); {找质数q}
writeln(n,'=',p,'+',q);
100:readln
end.
15 楼
xpycc [专家分:410] 发布于 2005-07-08 12:00:00
还有别的算法么?
我来回复