Java实现 验证歌德巴赫猜想简单的实现
写在前面,代码的实现其实不难,但这里主要是通过运用接口的方法去解决该问题,并因此感受"接口作为一种标准"这句话的思想体现
题目: 输入一个大于 6 的偶数,请输出这个偶数能被分解为哪两个质数的和。如 10=3+7 12=5+7
要求:两个人一组合作完成。一个人负责把一个整数 n 拆分成两个整数的和,另一个人负责写一个函数,
判断某一个整数 a 是否是质数 。
接口实现与应用:首先定义一个接口,并以此接口作为开发时的依据。
interface MathTool{ //定义接口,用来判断一个整数是否为素数
public boolean isPrime(int n);
}
一个使用 MathTool 的方法,一个为 MathTool 提供实现。
代码实现:
接口的使用者:求两个质数之和的工具类
public class TwoPrimeAdd {//接口的使用者
void add(int number) {
int n = number;
MathTool math = new PrimeNumber();//使用接口方法,接口方法被PrimeNumber类具体实现
for (int i = 0; i < ((n / 2) + 1); i++) {
if (math.isPrime(n - i) && math.isPrime(i))
System.out.println("整数" + n + "等于" + (n - i) + "加上" + i);
}
}
}
接口的实现者:该方法的各种具体实现与优化.转载:添加链接描述
public class PrimeNumber implements MathTool {//接口具体的实现类
public boolean isPrime(int n) {//实现接口抽象方法的重写
if (n <= 3) {
return n > 1;
}
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
测试:
public static void main(String[] args) {
TwoPrimeAdd exam=new TwoPrimeAdd();//工具的调用者
exam.add(100);
}
测试截图: