电影 巴山夜雨 剧情:懂编程的帮 忙做一下这道题,用函数做

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/10 14:09:14
哥德巴赫猜想:将一个奇数拆分成三个素数之和。
样例:
输入:9
输出:9=3+3+3
不好意思
忘了说了
是turbo pascal

这业太简单了把,程序如下

program gdbh2;
var
i,j,k,q,b,v:integer;

function ss(x:longint):boolean;
var
i:longint;
begin
ss:=true;
if x>2 then
for i:=2 to round(sqrt(x)) do
if ( x mod i)=0 then ss:=false;
end;

begin
v:=0;
readln(q);
for j:=2 to q-2 do
begin
if ss(j) then
for k:=j to q-2 do
if ss(k) then
for b:=k to q-2 do
if ss(b) then
if q=j+k+b then
begin
writeln(q,'=',j,'+',k,'+',b);
v:=v+1;
end;
end;

{writeln(v);}
end.

function sushu($num){
for($i=1;$i<$num;$i++){
if(checksushu($i)){
$num2=$num-$i;
for($ii=1;$ii<$num2;$ii++){
if(checksushu($ii)){
$iii=$num2-$ii;
if(checksushu($iii)) echo $num."=".$i."+".$ii."+".$iii."<br>";
}
}
}
}
}

function checksushu($num){
if($num<3){
return false;
}else{
$issushu="yes";
for($i=2;$i<$num;$i++){
if($num % $i==0) $issushu="no";
}
if($issushu=="no") return false;
else return true;
}
}

不知道你用什么语言就用C编了一个,在VC下运行通过

#include "stdio.h"

int IsOdd( int inum );
int IsPrime( int inum );
int IsOddTo3Prime(int inum);
void main()
{
int iEnter;
scanf("%d",&iEnter);
if(IsOdd(iEnter))
{
IsOddTo3Prime(iEnter);
}
else
{
printf("wrong number\n");
}
}
int IsOdd( int inum )
{
if( inum%2 == 0 )
{
return 0;
}
else
{
return 1;
}
}
int IsPrime( int inum )
{
int i;
if( (inum == 1)||(inum == 2) )
{
return 1;
}
if( IsOdd(inum) )
{
for( i = 3;i < inum;i = i + 2)
{
if( inum % i == 0 )
{
return 0;
break;
}
}
if( i >= inum )
{
return 1;
}
}
else
{
return 0;
}
return 0;
}

int IsOddTo3Prime(int inum)
{
int i,j,k,iFlag = 0;
for( i = 1;i <= inum;i++)
{
for(j = 1;j <= inum;j++)
{
for(k = 1;k <= inum;k++)
{
if((i + j + k == inum)&&(IsPrime(i))&&(IsPrime(j))&&(IsPrime(k)))
{
if( (i <= j)&&(j <= k))
{
printf("%d = %d + %d + %d \n",inum,i,j,k);
iFlag = 1;
}
}
}
}
}
if(iFlag == 0)
{
printf("No number fit\n");
return 0;
}
else
{
return 1;
}
}

枚举吧,从1到N弄三个循环,自己加,加得出的就算对了

哥德巴赫猜想是:偶数分成两个素数。

如果真编出来,那还叫哥德巴赫猜想干什么?都可以上诺贝尔奖了