miracle just wanna be better

哥德迈巴赫猜想

2019-07-07
miracle

验证哥德巴赫猜想:任何一个大于6 的偶数,都能分解成两个质数的和。要求输入一个整数,输出这个数能被分解成哪两个质数的和。 例如: 14 14=3+11 14=7+7

package practice.day08;

import java.util.Scanner;

public class Demo4 {
	long num1;// 第一个素数
	long num2;// 第二个素数
/**
 * 输入一个数,从第一个数等于1开始遍历,第二个数等于num-num1;遍历到num/2即可,因为1+2=2+1=3;
 * 如果两个数都是素数,则输出.
 * @param num
 */
	public void method(long num) {
		for (num1 = 1; num1 <= num / 2; num1++) {
			num2 = num - num1;
			if (prime(num1) && prime(num2)) {
				System.out.println(num + "=" + num1 + "+" + num2);
			}
		}

	}
/**
 * 判断是素数,2是素数,如果有数从2开始遍历到小于它可以被整除,则该数不是素数;否则是素数
 * @param i
 * @return
 */
	static boolean prime(long i) {
		if (i == 2)
			return true;
		else {
			for (int k = 2; k < i; k++) {
				if (i % k == 0)
					return false;
			}
			return true;
		}

	}

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个大于6的数");
		long num = input.nextLong();
		Demo4 demo = new Demo4();
		demo.method(num);

	}

}

Comments

Content