java数组验证哥德巴赫猜想_验证哥德巴赫猜想的JAVA代码

package suxueyuanli;

public class Zhishu {

public static void main(String[] args) {

int X = 0;// 定义一个变量,用于实时表示左因子的值;即Q=X+Y,X为左加子;

int Y = 0;// 定义一个变量,用于实时表示右因子的值;即Q=X+Y,Y为右加子;

int x = 0;

int y = 0;

double Z = 0;// 定义一个上限值;

double D = 0;

int Q = 0;// 定义一个偶数并初始化;

int sum = 0;// 定义一个计数器sum,用于记录所有有效的X和Y组合的个数;

int sum1 = 0; // 定义一个计数器sum1,用于记录匹配成功的组合个数;

int m = 1; // m的值最小为1;是循环的最小起点;

int n = 100;// n的值最小为2,n越大,算法的运算范围越广,当n为2时,Q为8,n-1为循环的终点;

int P = 2 * m + 6;

for (int i = m; i < n; i++) {

Q = 2 * i + 6; // 利用循环生成偶数;

D = (Q - 2) / 4 + 1;// 系统自动会向下取整,所以需要加一;

for (int j = 1; j < D; j++) {

Y = 2 * j + 1; // 利用循环生成实时的右加子;

X = Q - Y; // 利用循环生成实时的左加子;

if (X % Y != 0 & Y < X) {// Y应该始终小于X,否则关于Q/2对称的X和系统会重复判断。

sum++;

}

Z = Math.sqrt(Q); // 将Q开方作为匹配循环的上限值;

for (int num = 3; num < Z; num = num + 2) {

for (int k = 0; k < (Z - num) / 2; k++) {

x = num * (num + 2 * k);

y = num * (num + 2 * k);

// System.out.println();

if (x == X || y == Y) {

sum1++;

}

}

}

}

}

int C = 2 * sum - sum1; // 定义一个计数器C,用于记录未匹配成功的X+Y组合,就是两个质加子组合;

if (C == 0) {

System.out.println("存在一个偶数" + Q + "其不存在两个质数加子");

} else {

System.out.println(+P + "到" + Q + "范围内的偶数都存在两个质数加子");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值