验证哥德巴赫猜想,一个大于4的偶数,可以分解成两个素数之和,要求判断素数用函数实现
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 14:14:31
![验证哥德巴赫猜想,一个大于4的偶数,可以分解成两个素数之和,要求判断素数用函数实现](/uploads/image/z/6607571-59-1.jpg?t=%E9%AA%8C%E8%AF%81%E5%93%A5%E5%BE%B7%E5%B7%B4%E8%B5%AB%E7%8C%9C%E6%83%B3%2C%E4%B8%80%E4%B8%AA%E5%A4%A7%E4%BA%8E4%E7%9A%84%E5%81%B6%E6%95%B0%2C%E5%8F%AF%E4%BB%A5%E5%88%86%E8%A7%A3%E6%88%90%E4%B8%A4%E4%B8%AA%E7%B4%A0%E6%95%B0%E4%B9%8B%E5%92%8C%2C%E8%A6%81%E6%B1%82%E5%88%A4%E6%96%AD%E7%B4%A0%E6%95%B0%E7%94%A8%E5%87%BD%E6%95%B0%E5%AE%9E%E7%8E%B0)
验证哥德巴赫猜想,一个大于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;
}
}
}
收起