验证哥德巴赫猜想,一个大于4的偶数,可以分解成两个素数之和,要求判断素数用函数实现
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/24 07:28:18
验证哥德巴赫猜想,一个大于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;
}
}
}
收起