1.接口实现

  1. package goldbach;
  2. /**
  3. * 输入一个大于6的偶数,请输出这个偶数能被分解为哪两个质数的和。如:10=3+7 12=5+7
  4. * 此为按接口实现类完成
  5. *
  6. * @author GGGXXC
  7. *
  8. */
  9. public class InterfaceGoldbachGuess {
  10. public static void main(String[] args) {
  11. divideNum(new InterGoldBach(), 100);
  12. }
  13.  
  14. /**
  15. * 将两个数字分成两个,分别判断是不是素数
  16. * @param cp 传入的CheckPrime接口的实现类
  17. * @param target 传入的目标值
  18. */
  19. public static void divideNum(CheckPrime cp, int target) {
  20. for (int i = 2; i <= target / 2; i++) {
  21.  
  22. if (cp.isPrime(i) && cp.isPrime(100 - i)) {
  23. System.out.println(i + "和" + (target - i));
  24. }
  25.  
  26. }
  27.  
  28. }
  29.  
  30. }
  31.  
  32. /**
  33. * 定义检查一个整数是不是素数的接口
  34. */
  35. interface CheckPrime {
  36. boolean isPrime(int n);
  37. }
  38. /**
  39. * 采用接口的方式检查某个整数是不是素数
  40. *
  41. * @author GGGXXC
  42. *
  43. */
  44. class InterGoldBach implements CheckPrime {
  45. public boolean isPrime(int n) { // 这里能加上static吗?
  46.  
  47. int k = 2;
  48.  
  49. while (k <= n / 2) {
  50. if (n % k == 0) {
  51. return false;
  52. }
  53. k++;
  54. }
  55. return true;
  56. }
  57. }

2.封装实现

  1. package goldbach;
  2.  
  3. /**
  4. * 输入一个大于6的偶数,请输出这个偶数能被分解为哪两个质数的和。如:10=3+7 12=5+7
  5. * 此为封装成方法的方式
  6. *
  7. * @author GGGXXC
  8. *
  9. */
  10. public class Goldbach {
  11. public static void main(String[] args) {
  12.  
  13. int target = 100;
  14.  
  15. for (int i = 2; i <= target / 2; i++) {
  16. boolean ret = isPrime(i) && isPrime(100 - i);
  17.  
  18. if (ret) {
  19. System.out.println(i + "和" + (target - i));
  20. }
  21. }
  22.  
  23. }
  24.  
  25. /**
  26. * 判断传入的数字是不是质数
  27. *
  28. * @param num 需要判断是否是质数的数字
  29. * @return 是质数返回true,不是质数返回false
  30. */
  31. public static boolean isPrime(int num) {
  32.  
  33. int k = 2;
  34.  
  35. while (k <= num / 2) {
  36. if (num % k == 0) {
  37. return false;
  38. }
  39. k++;
  40. }
  41. return true;
  42. }
  43.  
  44. }

哥德巴赫猜想 Java实现的更多相关文章

  1. P1579_哥德巴赫猜想(JAVA语言)

    题目背景 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和.质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是 ...

  2. Java实现蓝桥杯算法提高 哥德巴赫猜想

    试题 算法提高 哥德巴赫猜想 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 根据所给函数(判断一个整数是否是素数),然后依托该函数,将输入N内的偶数(6-N),输出为两个素数之和( ...

  3. Java实现哥德巴赫猜想

    验证哥德巴赫猜想:任何一个大于 6 的偶数,都能分解成两个质数的和.要求输入一个整数,输出这个 数能被分解成哪两个质数的和. eg : 14 14=3+11 14=7+7 public class T ...

  4. Java实现 洛谷 P1579 哥德巴赫猜想(升级版)

    题目背景 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和.质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是 ...

  5. *CF2.D(哥德巴赫猜想)

    D. Taxes time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...

  6. C#实现哥德巴赫猜想

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Goet ...

  7. code forces 382 D Taxes(数论--哥德巴赫猜想)

    Taxes time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...

  8. CF735D Taxes 哥德巴赫猜想\判定素数 \进一步猜想

    http://codeforces.com/problemset/problem/735/D 题意是..一个数n的贡献是它的最大的因子,这个因子不能等于它本身 然后呢..现在我们可以将n拆成任意个数的 ...

  9. Codeforces Round #382 (Div. 2) D. Taxes 哥德巴赫猜想

    D. Taxes 题目链接 http://codeforces.com/contest/735/problem/D 题面 Mr. Funt now lives in a country with a ...

随机推荐

  1. ACM思维题训练 Section A

    题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...

  2. 图论--2-SAT--POJ 3905 Perfect Election

    Perfect Election Time Limit: 5000MS         Memory Limit: 65536K Total Submissions: 964         Acce ...

  3. 虚拟机上图片服务器搭建(FastDFS+nginx)

    文件服务器 0.提前建好需要的文件夹(/home/fastdfs) /home/fastdfs/tracker /home/fastdfs/storage /home/fastdfs/storage/ ...

  4. Envoy 基础教程:使用 Unix Domain Socket(UDS) 与上游集群通信

    Envoy Proxy 在大多数情况下都是作为 Sidecar 与应用部署在同一网络环境中,每个应用只需要与 Envoy(localhost)交互,不需要知道其他服务的地址.然而这并不是 Envoy ...

  5. Vue + Element-ui实现后台管理系统(4)---封装一个ECharts组件的一点思路

    封装一个ECharts组件的一点思路 有关后台管理系统之前写过三遍博客,看这篇之前最好先看下这三篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-system ...

  6. Kali:系统安装之后进行所需配置

    apt设置源 由于官网的源需要墙或者想使用国内的源,可以修改source.list vi /etc/source.list 打开文件并修改为其他可用的源地址,以下可供参考 deb http://ftp ...

  7. [codeforces-543B]bfs求最短路

    题意:给一个边长为1的无向图,求删去最多的边使得从a到b距离<=f,从c到d距离<=g,a,b,c,d,f,g都是给定的,求最多删去的边数. 思路:反过来思考,用最少的边构造两条从a到b, ...

  8. Linux,Unix,GNU 到底有什么样的渊源?

    Linux,Unix, GNU,你可能经常听到这些名字被放在一起,比如 “Linux是类Unix系统”, “Linux其实应该叫 GNU/Linux” 等等.为什么会有这些说法,这些名词的历史渊源和背 ...

  9. Redis系列(七)Redis面试题

    Redis 系列: Redis系列(一)Redis入门 Redis系列(二)Redis的8种数据类型 Redis系列(三)Redis的事务和Spring Boot整合 Redis系列(四)Redis配 ...

  10. 2018-06-17 js数组

    数组的定义:① var arr=new Array(xx,xx,xx); ②var arr=[yy,yy,,yy]; 数组的查看:arr[x]; 数组的修改:arr[x]=xx; 数组的遍历:①for ...