验证哥德巴赫猜想:任何一个大于6的偶数,都能分解成两个质数的和。要求输入一个整数,输出这个数 能被分解成哪两个质数的和。
eg : 14
14=3+11
14=7+7
import java.util.Scanner;
// 验证哥德巴赫猜想:
// 任何一个大于6的偶数,都能分解成两个质数的和。
// 要求输入一个整数,输出这个数 能被分解成哪两个质数的和。
//步骤1:找出该整数的所有的素数。
//步骤2:判断i和num-i是不是都是质数。
//步骤3:输出和。
public class HW_02_22 {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("请输入一个大于6的偶数:");
int num=input.nextInt();
for(int i=1;i<=num/2;i++){//除2,是因为3=1+2,3=2+1. 只需找到num/2之前的质数就可以。
if(isPrime(i)&&isPrime(num-i)){//判断 i和 (num-i)是不是质数
System.out.println(num+":"+i+"+"+(num-i));
}
}
}
//判断是不是质数
public static boolean isPrime(int num){
for(int i=2;i<num; i++){
if(num%i==0)//取余没余数,为素数
return false;
}
return true;
}
}
//答案
请输入一个大于6的偶数:
14
14:1+13
14:3+11
14:7+7