验证哥德巴赫猜想,一个大于4的偶数,可以分解成两个素数之和,要求判断素数用函数实现

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 15:32:09
验证哥德巴赫猜想,一个大于4的偶数,可以分解成两个素数之和,要求判断素数用函数实现

验证哥德巴赫猜想,一个大于4的偶数,可以分解成两个素数之和,要求判断素数用函数实现
验证哥德巴赫猜想,一个大于4的偶数,可以分解成两个素数之和,要求判断素数用函数实现

验证哥德巴赫猜想,一个大于4的偶数,可以分解成两个素数之和,要求判断素数用函数实现

可以做到,不过你要限定一个偶数的上限,比如上限是50,具体的代码如下:

#include <stdio.h>

#include<math.h>

 int sushu(int i)   //判定数是否为素数

    int a=1;

 for(int j=2;j<i;j++)

  if(i%j==0) a=0;

   if(a==1)

          return 1;  

   else

    return 0;

    

}

void main ()

{

 int x,t,n;

 printf("请输入你想要分解的偶数的上限:");

 scanf("%d",&n);

 for( t=2;t<=n;t=t+2)

 for(int m=2;m<=t;m++)

  for(int n=m;n<=t;n++)

  {

   if(m+n==t&&sushu(m)&&sushu(n))

   {

       printf("%d+%d=%d,",m,n,t);

          printf("  两素数分别是:%d,%d\n",m,n);

          printf("\n");

   }

  }

}

运行截图如下:

无法实现。否则哥德巴赫猜想就可以证明出来了。现在只是算到了1+2=3

#include "iostream"
using namespace std;
#include "math.h"
int Judge(int num)
{
int flag = 1;
for(int j =2 ; j <= sqrt(num) ; j++)
{
if(num % j == 0)
{
flag = 0...

全部展开

#include "iostream"
using namespace std;
#include "math.h"
int Judge(int num)
{
int flag = 1;
for(int j =2 ; j <= sqrt(num) ; j++)
{
if(num % j == 0)
{
flag = 0;
break;
}
}
if(flag)
return 1;
return 0;
}
void main()
{
int num;
cin >> num;
int temp = num;
for(int i = 2 ; i < num ; i++)
{
temp = num;
if(Judge(i))
{
temp -= i;
if(Judge(temp) && temp != 1)
cout << temp << " " << i << endl;
}
}
}

收起