主题:哥德巴赫猜想 问题
QQ331373582
[专家分:1500] 发布于 2005-06-11 15:18:00
输入一个大于4,而且是偶数的书。
证明,如果这个数是2个素数的和。那么就打印出来。else 输出 NO!!
要用自定义函数!!!!
答对+30 分
回复列表 (共15个回复)
沙发
vincent2005 [专家分:30] 发布于 2005-06-12 07:44:00
program zhs (input,output);
var
i,n,p,q:integer;
flagp,flagq:boolean;
begin
read(n);
p:=1;
repeat
p:=p+1;
q:=n-p;
flagp:=true;
for i:=2 to round(sqrt(p)) do
if p mod i = 0
then flagp:=false;
flagq:=true;
for i:=2 to round(sqrt(q)) do
if q mod i = 0
then flagq:=false
until flagp and flagq;
writeln(n,'=',p,'+',q)
end.一位兄弟的程序,抄了过来,在Free pascal中通过!
板凳
泡泡糖 [专家分:230] 发布于 2005-06-12 12:40:00
你是
└▓希﹏朢吧!这是你昨天让我做的,我做出了,用了自定义函数,程序在下:
program lt;
var n,i,j,bj:integer;
function zhishu(k:itneger):integer;
var l,m:integer;
begin
l:=trunc(sqrt(k));
zhishu:=0;
for m:=2 to l do
if k mod m=0 then
begin
zhishu:=1;
m:=l;
end;
end;
begin
bj:=0;
repeat
write('N=');readln(n);
until (n>4)and(not(odd(n)));
for i:=2 to n-2 do
begin
j:=n-i;
if zhishu(i)=0 then
if zhishu(j)=0 then
begin
writeln(n,'=',i,'+',j);
bj:=1;
i:=n-2;
end;
end;
if bj=0 then writeln('NO');
end.
如果还有什么不足,请纠正,如果你觉得还可以,请你给我加分,谢谢了!
3 楼
泡泡糖 [专家分:230] 发布于 2005-06-12 12:41:00
1楼的,你没看题目吗?
用自定义函数!
4 楼
泡泡糖 [专家分:230] 发布于 2005-06-12 13:32:00
[哥德巴赫猜想]:
德国数学家哥德巴赫喜欢研究数字的规律,他发现:可以把偶数拆成两个奇素数的和;而把一个奇数拆成三个奇数的和时,其中至少有一组是三个奇素数。
比如:
6=3+3,10=5+5=3+7,16=11+5=3+13,
31=3+11+17,45=5+17+23.
究竟这是一条普遍的规律,还是有例外?后来把这个问题以猜想的形式公诸于世:
(1)每个>=6的偶数都可表示成两个奇素数的和;
(2)每个>=9的奇数都可表示成三个奇素数的和。
这就是著名的哥德巴赫猜想。
想一想可以发现,如果(1)成立,则(2)必成立,所以命题(1)是最本质的,因此人们常把它简称为"1+1"
5 楼
QQ331373582 [专家分:1500] 发布于 2005-06-14 19:36:00
这里有问题啊
if zhishu(i)=0 then
if zhishu(j)=0 then
6 楼
zhsas [专家分:1680] 发布于 2005-06-15 00:00:00
一楼的你怎么找我的程序呀?
7 楼
zhsas [专家分:1680] 发布于 2005-06-15 00:02:00
一楼的兄弟,你怎么可以抄我写的程序呀?
8 楼
QQ331373582 [专家分:1500] 发布于 2005-06-18 09:00:00
对!
这一个程序有问题啊········
if zhishu(i)=0 then
if zhishu(j)=0 then
9 楼
泡泡糖 [专家分:230] 发布于 2005-06-18 12:23:00
哪里有问题,那里是判断两个数是否为质数!
我验算过了,绝对没问题!
10 楼
泡泡糖 [专家分:230] 发布于 2005-06-18 12:30:00
我用PASCAL算过了,没有出错!不信你可以用PASCAL试一试!
我来回复