java中的接口回调
程序员文章站
2022-03-23 17:33:01
...
在这里插入代码片
```/*
* 编程:验证歌德巴赫猜想:输入一个大于 6 的偶数,请输出这个偶数能被分解为哪两个质数的和。
* 如 10=3+7 12=5+7
* 要求:两个人一组合作完成。一个人负责把一个整数 n 拆分成两个整数的和,另一个人负责写一个函数,
* 判断某一个整数 a 是否是质数 。
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
System.out.println("请输入一个大于6的偶数:");
int n = s.nextInt();
if(n<6 || n%2!=0) {
System.out.println("不能分解成两个质数的和");
}
//创建T19对象
T19 t = new T19();
check(n,t);
}
//定义一个方法用来打印结果
public static void check(int num, T22 t) {
for(int i=2; i<num/2; i++) {
if((t.isZhi(i)=="质数") && (t.isZhi((num-i))=="质数") && i<(num-i)) {
System.out.println(num+"="+i+"+"+(num-i));
}
}
}
//定义一个接口
interface T22{
String isZhi(int a);
}
//定义一个类实现接口
class T19 implements T22{
public String isZhi(int a) {
//定义一个flag,初值设为0
int flag = 0;
for(int i=2; i<a; i++) {
//若a%2==0,flag自增1
if(a % i == 0) {
flag++;
}
}
if(flag==0) {
return "质数";
}
else {
return "不是质数";
}
}
}
推荐阅读