import java.util.Sacnner;publicclassTestGoldbach{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);int num = input.nextInt();//拆质数for(int i =2; i <= num/2; i++){if(isPrime(i)&&isPrime(num-i)){
System.out.println(i +"\t"+(num-i));}}}//验证质数publicstaticbooleanisPrime(int n){for(int i =2; i < n ; i++){if(n % i ==0){returnfalse;}}returntrue;}}
此代码虽然在判断一个数是否为质数上做了一定的优化,但是代码块之间耦合度高。
三、运用接口回调之后的哥德巴赫猜想
publicclassGoldbach{publicstaticvoidmain(String[] args){//4.实现者
Check checkTool =newCheck();
checkTool.check(100,newEnginer());}}//1.标准,接口,判断一个正整数是否为质数interfaceTool{publicabstractbooleanisPrime(int num);}//2.使用者,使用接口来验证哥德巴赫猜想(工具)classCheck{publicvoidcheck(int num, Tool tool){for(int i =2; i <= num/2; i++){if(tool.isPrime(i)&& tool.isPrime(num-i)){
System.out.println(i +"\t"+(num-i));}}}}//3.实现类,实现接口中的判断是否为质数的方法classEnginerimplementsTool{@OverridepublicbooleanisPrime(int num){for(int i =2; i < num ; i++){if(num % i ==0){returnfalse;}}returntrue;}}