哥德巴赫猜想即任一个偶数都可写成两个素数之和。
可以用代数证明,也可以用C++来证明。
上代码:
#include
using namespace std;
bool Prime(int i) {//判断是否为质数的函数
int j;
if (i <= 1) return 0;//如果小于等于1返回0
if (i == 2) return 1;//如果是2,返回1
for (j = 2; j < i; j++) {//循环遍历判断是否为质数
if (i%j == 0)return 0;
else if (i != j + 1) continue;
else return 1;
}
}
int main() {
long i, j, k, flag1, flag2, n = 0;
int a, b;
cout << "请输入要验证的偶数范围,即输入两个正偶数:";
cin >> a >> b;
int min = a <= b ? a : b;//求较小的数
int max = a >= b ? a : b;//求较大的数
for (i = min; i <=max; i+=2) {//偶数相加
for (k = 2; k <= i / 2; k++) {//根据鸽笼定理,将偶数分为两部分
j = i - k;//另一部分
flag1 = Prime(k);
if (flag1) {//如果k为质数
flag2 = Prime(j);
if (flag2) {//j也为质数
cout << i << " = " << j << "+" << k<<" ";
n++;
if (n % 5 == 0) cout << endl;//每5个换行
break;
}
}
}
}
if (n == (max - min) / 2 + 1) cout << "哥德巴赫猜想正确!";//如果个数满足要求输出猜想正确
system("pause");
return 0;
}
制作不易,要个赞不过分吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)