1.接口实现

package goldbach;
/**
* 输入一个大于6的偶数,请输出这个偶数能被分解为哪两个质数的和。如:10=3+7 12=5+7
* 此为按接口实现类完成
*
* @author GGGXXC
*
*/
public class InterfaceGoldbachGuess {
public static void main(String[] args) {
divideNum(new InterGoldBach(), 100);
} /**
* 将两个数字分成两个,分别判断是不是素数
* @param cp 传入的CheckPrime接口的实现类
* @param target 传入的目标值
*/
public static void divideNum(CheckPrime cp, int target) {
for (int i = 2; i <= target / 2; i++) { if (cp.isPrime(i) && cp.isPrime(100 - i)) {
System.out.println(i + "和" + (target - i));
} } } } /**
* 定义检查一个整数是不是素数的接口
*/
interface CheckPrime {
boolean isPrime(int n);
}
/**
* 采用接口的方式检查某个整数是不是素数
*
* @author GGGXXC
*
*/
class InterGoldBach implements CheckPrime {
public boolean isPrime(int n) { // 这里能加上static吗? int k = 2; while (k <= n / 2) {
if (n % k == 0) {
return false;
}
k++;
}
return true;
}
}

2.封装实现

package goldbach;

/**
* 输入一个大于6的偶数,请输出这个偶数能被分解为哪两个质数的和。如:10=3+7 12=5+7
* 此为封装成方法的方式
*
* @author GGGXXC
*
*/
public class Goldbach {
public static void main(String[] args) { int target = 100; for (int i = 2; i <= target / 2; i++) {
boolean ret = isPrime(i) && isPrime(100 - i); if (ret) {
System.out.println(i + "和" + (target - i));
}
} } /**
* 判断传入的数字是不是质数
*
* @param num 需要判断是否是质数的数字
* @return 是质数返回true,不是质数返回false
*/
public static boolean isPrime(int num) { int k = 2; while (k <= num / 2) {
if (num % k == 0) {
return false;
}
k++;
}
return true;
} }

最新文章

  1. HTML中嵌入pdf的简单方法
  2. hdu-5492 Find a path(dp)
  3. C++ 生成 dll 和调用 dll 的方法实例(转)
  4. 检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
  5. 通过模板类简单实现Spark的JobServer
  6. Android SimpleAdapter源码详解
  7. JavaScript String支持的辅助format函数+【分页1】
  8. [Java Performance] 数据库性能最佳实践 - JPA和读写优化
  9. Javascript 拖拽雏形中的一些问题——逐行分析代码,让你轻松了解拖拽的原理
  10. [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展camelize与dasherize方法(3)
  11. css3 滚动条出现 页面不跳动
  12. CentOS6系列系统启动常见故障排查与解决方法
  13. 【转】Sentry介绍
  14. Element ui select同时获取value和label的值
  15. [record]WebLogic域之创建-文本界面
  16. 高斯混合模型的EM算法
  17. Codeforces1065G Fibonacci Suffix 【递推】【二分答案】
  18. 【C++】C++中const与constexpr的比较
  19. Supervisord安装和配置
  20. mybatis 环境搭建和基本说明

热门文章

  1. Linux下创建 code diff 和 合并 patch
  2. #Week8 Advice for applying ML &amp; ML System Design
  3. NetCore项目实战篇02---全局异常处理
  4. The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 C Buy Watermelon
  5. 概率dp部分题目
  6. muduo网络库源码学习————线程本地单例类封装
  7. springboot打包启动时报mybatis的typeAlias类名找不到的错误
  8. 第 4 篇:用类视图实现首页 API
  9. spring学习笔记(五)自定义spring-boot-starter(1)
  10. 【Hadoop离线基础总结】Hue与oozie集成