/*   连续数的公倍数
为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。
但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。
事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。我们希望寻找到能除尽1至n的的每个数字的最小整数。不要小看这个数字,它可能十分大,比如n=100, 则该数为:
69720375229712477164533808935312303556800请编写程序,实现对用户输入的 n (n<100)求出1~n的最小公倍数。例如:
用户输入:
6
程序输出:
60用户输入:
10
程序输出:
2520*/
import java.math.BigInteger;
import java.util.Scanner;
public class 连续数的公倍数 {// 得到最大公约数(辗转相除)public static BigInteger gdc(BigInteger m,BigInteger n) {BigInteger r = m.mod(n);while(r.compareTo(BigInteger.ZERO)!=0){m = n;n = r;r = m.mod(n);}return n;}public static BigInteger f(BigInteger m,BigInteger n){if(n.compareTo(BigInteger.ONE)==0){return m; // n到最后}else{m = m.multiply(n).divide(gdc(m, n));  // 得到最小公倍数return f(m,n.subtract(BigInteger.ONE));}}public static void main(String[] args){Scanner scan = new Scanner(System.in);System.out.println("输入的 n (n<100)");BigInteger m = scan.nextBigInteger();System.out.println(f(m,m.subtract(BigInteger.ONE)));}
}

运行结果:

输入的 n (n<100)
100
69720375229712477164533808935312303556800

方法二:

import java.math.BigInteger;public class 连续公倍数 {// 求能除尽1~n 每个数字的最小整数public static BigInteger f(int n) {int[] x = new int[n + 1];for (int i = 1; i <= n; i++)x[i] = i;for (int i = 2; i < n; i++) {for (int j = i + 1; j <= n; j++) {if(x[j] % x[i]==0) x[j] = x[j]/x[i]; // 填空1}}BigInteger m = BigInteger.ONE;for (int i = 2; i <= n; i++) {m = m.multiply(BigInteger.valueOf(x[i])); // 填空2}return m;}public static void main(String[] args) {System.out.println(f(100));}
}

运行结果:

69720375229712477164533808935312303556800

连续数的公倍数 为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。相关推荐

  1. 两年数模路,一点小感触…

    按:写于四年之前~ 前些时日小白给我打电话,说市场部的学弟准备参加mcm,想问点问题.我才猛然想起自己还参加过那么几次,也无怪乎天纯妹妹总给我发四字短信"建模先锋",甚是有聊.去年 ...

  2. hdu 5247 找连续数(思维)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5247 找连续数 Time Limit: 2000/1000 MS (Java/Others)    M ...

  3. 统计数列中是连续数的个数

    数据库环境:SQL SERVER2008R2 今天在群里看到一位网友提的需求,要求统计一组数据中前3位是连续数的个数,具体看贴图. 实现这个需求蛮简单的,说下我的思路: 取前3位,然后减去123,再和 ...

  4. hdu5247找连续数(打表)

    题意(中问题直接粘题意吧)                                 找连续数 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否 ...

  5. 2015年百度之星初赛(1) --- B 找连续数

    找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  6. 4万次下载,我的这本电子书连续数月蝉联阿里云下载榜冠军!!!

    初学Java的你还在烦恼不知道怎么去学,学习什么内容吗? 那么多的技术书籍是否已经让你无从下手? 别急,这就附上一份完整的Java学习路径.从头开始,给你一个体系化的学习方案. 结合作者(其实就是我) ...

  7. 数组系列—连续数中寻找缺失的数字

    连续数中寻找缺失的数字 通过散列表实现: public static void find(int[] array){Hashtable<Integer,Integer> hasht=new ...

  8. 编程实现:从字符中获取连续数组序列,如字符串a1dl2iad9j3la5kudp7u9pn4blj8ap5u3e6ml9a中可以得到的连续数字序列为1234556.【注】:只考虑一位,因此最长的数

    编程实现:从字符中获取连续数组序列,如字符串"a1dl2iad9j3la5kudp7u9pn4blj8ap5u3e6ml9a"中可以得到的连续数字序列为1234556.[注]:只考 ...

  9. C# 利用linq获取一组数中几个连续数中最大的一个数字

    提供一个数组,其中部分数据是连续的,比如0~20的一组数据,其中少了一个数,假设少了11,那么连续中最大的数字就是10, 假如数组不是从0开始,假设是3~20,中间少了1个数,假如少了8,那么连续中最 ...

最新文章

  1. SQL Server 多实例下的复制
  2. MongoDB 基础用法及学习笔记
  3. JS实现倒计时三秒钟跳转到新的页面
  4. python怎么做乘法表_python怎么写乘法表
  5. python循环语句知识点_Python for 循环语句【每日一个知识点第115期
  6. java dateutils_Java DateUtils java时间工具类 kaki的博客
  7. springMVC rest风格
  8. 分布式事务 - 如何解决分布式事务问题?
  9. 钉钉小程序使用vant_高效钉钉小程序开发丨详解Hello,dingtalk
  10. 关于Microsoft Enterprise Library的介绍
  11. php指定时间 n天,PHP实现指定时间的n月之前的这一天的两种算法
  12. 超详细的Python实现百度云盘模拟登陆(模拟登陆进阶)
  13. 基于echarts+html+css+jq的数据可视化大屏展示炫酷看板[附源码]
  14. android+微博点赞动画,模仿微博点赞动画
  15. The coordinates or measures are out of bounds.
  16. 计算机可能发科学,行测真题_随着科学技术的进步,电脑的问世让人类制造这样的机器“耳朵”成为可能...
  17. 此时流泪,彼时花开。。。。
  18. Hbuilder如何替换选中代码快捷键
  19. 不能同吃的食物组合(你知道吗?)
  20. 快慢缓急总相宜|ONES 人物

热门文章

  1. 基于主从博弈理论的共享储能与综合能源微网优化运行研究
  2. 1152 最大值和最小值
  3. springboot el表达式
  4. 激活UltraEdit 的方法
  5. vs2013建立html页面,使用 Visual Studio 2013 创建基本 ASP.NET 4.5 Web 窗体页
  6. 漫画赏析:Linux 内核到底长啥样
  7. php通过Imagick将PDF转换成PNG
  8. AMESIM学习——弹簧阻尼器小球位置控制Amesim-Simulink联合仿真
  9. java replaceall正则_String.replaceAll方法详析(正则妙用)
  10. highcharts 点击事件