进行哥德巴赫猜想的验证时,不能判断202以上的偶数
代码如下
//判断一个偶数是否满足哥德巴赫猜想
#include<stdio.h>
#include<math.h>
#define N 10000
int main()
{
int flag = 0;
int prime1 = 3;
int prime2 = 3;
int n = 2;//被判断的偶数
int prime[N];
int i = 0, j = 0, k = 1;
//构造质数组
for (i = 3; i <N; i++) {
if (i % 2 == 0) {
prime[i] = 0;
}
else {
prime[i] = 1;
}
for (j = 3; j < N; j++) {
if (prime[j]) {
for (k = 2; j * k < N; k++) {
prime[j * k] = 0;
}
}
}
}
//判断是否满足哥德巴赫猜想
scanf_s("%d", &n);
for (prime1; prime1 < n; prime1++) {
if (prime[prime1]) {
for (prime2; prime2 < n; prime2++) {
if (prime[prime2]) {
if (prime1 + prime2 == n) {
flag = 1;
}
}
}
}
}
if (flag) {
printf("YES");
}
else {
printf("NO");
}
return 0;
}
//判断一个偶数是否满足哥德巴赫猜想
#include<stdio.h>
#include<math.h>
#define N 10000
int main()
{
int flag = 0;
int prime1 = 3;
int prime2 = 3;
long long n = 2;//被判断的偶数//使用long long 类型
int prime[N];
int i = 0, j = 0, k = 1;
//构造质数组
for (i = 3; i <N; i++) {
if (i % 2 == 0) {
prime[i] = 0;
}
else {
prime[i] = 1;
}
for (j = 3; j < N; j++) {
if (prime[j]) {
for (k = 2; j * k < N; k++) {
prime[j * k] = 0;
}
}
}
}
//判断是否满足哥德巴赫猜想
scanf_s("%d", &n);
for (prime1; prime1 < n; prime1++) {
if (prime[prime1]) {
for (prime2; prime2 < n; prime2++) {
if (prime[prime2]) {
if (prime1 + prime2 == n) {
flag = 1;
}
}
}
}
}
if (flag) {
printf("YES");
}
else {
printf("NO");
}
return 0;
}
使用long long 类型可以扩大数据范围
代码如上