哥德巴赫猜想
作者:互联网
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)); } } } } /** * 定义检查一个整数是不是素数的接口 * * @author GGGXXC //有的位置都会出现@author ,有的位置则不会 * */ 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; } }
标签:target,int,void,偶数,static,哥德巴赫猜想,public 来源: https://www.cnblogs.com/raising/p/12865712.html