主题:[讨论]解“歌德巴赫猜想”
bsknight
[专家分:0] 发布于 2007-02-05 18:56:00
验证哥德巴赫猜想:任一个充分大的偶数n(10000>=n>=4),可以用两个素数之和表示。
谢谢!
回复列表 (共8个回复)
沙发
Milp [专家分:220] 发布于 2007-02-05 22:58:00
for n:=4 to 10000 do
if not odd(n) then
for j:=2 to n-2 do
if (prime(j)) and (prime(n-j)) then
writeln(n,'Right');
大概框架如此,prime函数你肯定写得来吧。
板凳
merry05 [专家分:8920] 发布于 2007-02-05 22:59:00
这个不是很简单么!循环+判断质数的函数!
3 楼
zhangyuan [专家分:630] 发布于 2007-02-08 14:42:00
题目都错了,应该是任何大于5的奇数都是三个素数之和,任何一个大于2的偶数都是两个素数之和。
4 楼
雪光风剑 [专家分:27190] 发布于 2007-02-10 20:11:00
[quote]题目都错了,应该是任何大于5的奇数都是三个素数之和,任何一个大于2的偶数都是两个素数之和。
[/quote]
是大于4的偶数
5 楼
liaoshaowei [专家分:0] 发布于 2007-02-14 17:24:00
program godbah(input,output);
var
n,p,q,j,i:integer;
fp,fq:boolean;
begin
for i:=4 to 10000 do
begin
p:=1;
repeat
p:=p+1;
q:=i-p;
fp:=true;
for j:= 2 to round(sqrt(p)) do
if p mod j=0
then fp:=false;
fq:=true;
for j:= 2 to round(sqrt(q)) do
if q mod j=0
then fq:=false;
until fp and fq;
writeln(i,'=',p,'+',q);
end;
end.
应该是这样写的
6 楼
bigchen [专家分:1940] 发布于 2007-02-14 22:03:00
不是吧?
应该是大于等于6的偶数可以拆分成2个质数和的形式
比如
6=3+3
等等
具体程序我就不写了
算法是枚举+素数判断
很简单同时也很老也很经典的题目了
7 楼
liuzhen836 [专家分:30] 发布于 2007-02-18 14:54:00
在奥赛书上有```
不过``好像是有限的哦```
变量定义要怎么定呢`?
8 楼
mmyy9 [专家分:100] 发布于 2007-03-02 09:22:00
var
a:array[1..255]of longint;
m,n,i,j,k,l,t,x:longint;s:real;
p:boolean;
procedure f;
begin
p:=true;
for j:=2 to trunc(sqrt(i))+1 do
if i mod j=0 then p:=false;
if p then
begin
for j:=2 to trunc(sqrt(n-i))+1 do
if (n-i) mod j=0 then p:=false;
if p then
writeln(i,'+',n-i);
end;
end;
begin
readln(n);
if n<4 then exit;
if n=4 then
begin
writeln(2+2);
exit;
end;
for i:=2 to n-2 do
f;
end.
我来回复