回 帖 发 新 帖 刷新版面

主题:哥德巴赫猜想 问题

输入一个大于4,而且是偶数的书。
证明,如果这个数是2个素数的和。那么就打印出来。else 输出 NO!!
要用自定义函数!!!!
答对+30 分

回复列表 (共15个回复)

沙发

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中通过!

板凳

你是

└▓希﹏朢吧!这是你昨天让我做的,我做出了,用了自定义函数,程序在下:


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 楼

1楼的,你没看题目吗?
用自定义函数!

4 楼

[哥德巴赫猜想]:
德国数学家哥德巴赫喜欢研究数字的规律,他发现:可以把偶数拆成两个奇素数的和;而把一个奇数拆成三个奇数的和时,其中至少有一组是三个奇素数。
比如:
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 楼

这里有问题啊
if zhishu(i)=0 then
    if zhishu(j)=0 then

6 楼

一楼的你怎么找我的程序呀?

7 楼

一楼的兄弟,你怎么可以抄我写的程序呀?

8 楼

对!
这一个程序有问题啊········
if zhishu(i)=0 then
    if zhishu(j)=0 then

9 楼

哪里有问题,那里是判断两个数是否为质数!
我验算过了,绝对没问题!

10 楼

我用PASCAL算过了,没有出错!不信你可以用PASCAL试一试!

我来回复

您尚未登录,请登录后再回复。点此登录或注册