题目:一个偶数总能表示为两个素数之和。
分析:一个偶数可能会有不止一对两个素数之和的情况
例如:20=3+17 20=7+13
1 import java.util.Scanner; 2 public class Prog44 { 3 public static void main(String[] args) { 4 System.out.print("请输入一个偶数:"); 5 Scanner scan = new Scanner(System.in); 6 int n = scan.nextInt(); 7 scan.close(); 8 if(n%2!=0){ 9 System.out.println("您输入的不是偶数!"); 10 return; 11 } 12 twoAdd(n); 13 } 14 //偶数分解为素数之和 15 private static void twoAdd(int n){ 16 for(int i=2;i<n/2+1;i++){ 17 if(isPrime(i)&&isPrime(n-i)){ 18 System.out.println(n+"="+(i)+"+"+(n-i)); 19 } 20 } 21 } 22 //判断素数 23 private static boolean isPrime(int m){ 24 boolean flag = true; 25 for(int i=2;i<Math.sqrt(m)+1;i++){ 26 if(m%i==0){ 27 flag = false; 28 break; 29 } 30 } 31 return flag; 32 } 33 } 34 /*运行结果 35 请输入一个偶数:20 36 20=3+17 37 20=7+13 38 */