package exec;import java.math.BigInteger;
import java.util.Scanner;/**
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 10^6。* @author Vivinia** 2018年2月1日*/
public class ZuiXiaoGongBeiShu {public static void main(String[] args) {Scanner input=new Scanner(System.in);int in=input.nextInt();BigInteger n=new BigInteger(in+"");         //超过long型的整型数据,要用BigIntegerBigInteger n1=new BigInteger((in-1)+"");BigInteger n2=new BigInteger((in-2)+"");BigInteger n3=new BigInteger((in-3)+"");input.close();String result;if(in<3)result="0";if(in%2==1)      //偶数result=n.multiply(n1.multiply(new BigInteger(n2+""))).toString();     //BigInteger型数据乘else {          //奇数if(in%3!=0) result=n.multiply(n1.multiply(new BigInteger(n3+""))).toString();else result=n1.multiply(n2.multiply(new BigInteger(n3+""))).toString();}System.out.println(result);}}

首先,思想是:

1.当n为奇数时,那么n,n-1,n-2是两两互质的,不可能有公约数2和3,所以式子为n*(n-1)*(n-2);

2.当n为偶数时,n和n-2会有公约数2,所以调整为n*(n-1)*(n-3);这时,如果n能被3整除,则n-3一定能被3整除,所以当n能被3整除时,式子变为(n-1)*(n-2)(n-3);

这里数据相乘会超过long的最大范围,所以使用BigInteger进行存储数据:

BigInteger a=new BigInteger("1122334455");    //存储数据aBigInteger b=new BigInteger("5566778899");        //存储数据bSystem.out.println(a.add(b));    //加System.out.println(a.subtract(b));   //减System.out.println(a.multiply(b));   //乘System.out.println(a.divide(b));    //除(只有整数位)

蓝桥杯-最大最小公倍数相关推荐

  1. 蓝桥杯-最大最小公倍数java语言

    蓝桥杯-最大最小公倍数java语言 开局一句话: 做这道题的时候,便没有对最小公倍数十分了解,就直接写了,也是惭愧,走了太多弯路,后来才知道,最小公倍数不是单单的几个数相乘就完了. 问题描述: 已知一 ...

  2. 蓝桥杯java最小公倍数_蓝桥杯算法训练 最大最小公倍数

    问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少. 输入格式 输入一个正整数N. 输出格式 输出一个整数,表示你找到的最小公倍数. 样例输入 9 样例输出 504 ...

  3. 蓝桥杯-5-1最小公倍数(java)

    算法训练 5-1最小公倍数 时间限制:1.0s 内存限制:256.0MB问题描述编写一函数lcm,求两个正整数的最小公倍数.样例输入一个满足题目要求的输入范例.例:3 5样例输出与上面的样例输入对应的 ...

  4. 蓝桥杯最大最小公倍数

    问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少. 输入格式 输入一个正整数N. 输出格式 输出一个整数,表示你找到的最小公倍数. 样例输入 9 样例输出 504 ...

  5. 蓝桥杯——最大最小公倍数

    算法训练 最大最小公倍数 问题描述:   已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少. 输入格式:   输入一个正整数N. 样例输入:   9 样例输出:   504 ...

  6. 【算法练习】蓝桥杯训练一:区间k大数查询、最大最小公倍数、k好数

    蓝桥杯训练一 一.区间k大数查询(简单)(模拟) 二.最大最小公倍数(中等)(数论) 三.k好数(DP) 一.区间k大数查询(简单)(模拟) 直接模拟就可以,个人觉得题目不严谨,没有说重复元素,也没有 ...

  7. 算法练习/最小公倍数_蓝桥杯历届试题 核桃的数量

    这道题乍一看没反应过来,点了提示发现就是求三个数的最小共倍数,估计这是某一年蓝桥杯代码题的第一题. 最小公倍数的求法是:a和b的最小公倍数=a*b/a和b的最大共约数 所以变成了求最大公约数了,应用& ...

  8. 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数

    第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数 目录 第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数 前言 算法训练 最 ...

  9. 十二届蓝桥杯省赛B组C++解析(填空题部分)

    十二届蓝桥杯省赛B组C++解析(填空题部分) 目录 十二届蓝桥杯省赛B组C++解析(填空题部分) A:空间 B:卡片 C:直线 D:货物摆放 E:路径 A:空间 该题是一道计算机基础原理题,这里需要了 ...

最新文章

  1. pth大小为0,占用空间不为0
  2. MM--发票校验 及基于采购订单的MIRO发票校验过程
  3. 如何自动判断域名是否被微信拦截 被微信屏蔽的域名网址如何正常打开使用
  4. ajax刷新iframe页面,通过iframe实现简单的ajax表单提交
  5. ASP.NET Core 启动方式(Hosting)
  6. mysql改密码脚本_mysql密码修改脚本
  7. git did not exit cleanly(解决办法)
  8. 网易严选Java开发三面面经:mysql索引面试题
  9. Linux系统编程(18)——正则表达式实用举例
  10. 选书不迷茫,国内原创佳作推荐,附赠神级优惠码༼⍤༽
  11. c语言源代码大全迅雷下载,俄罗斯方块C语言源代码
  12. 美通企业日报 | 药明康德上半年收入大增34%;资讯App今日头条第一微鲤进前八...
  13. 中外多角度破题司法判决“执行难”
  14. GLUE数据集免费下载 (MNLI, QQP, QNLI, SST-2, CoLA, STS-B, MRPC, RTE, WNLI)
  15. pix2pixhd_基于pix2pixHD的行人图像生成
  16. 正则表达式项目,批量修改文件
  17. C++试题 算法训练 相邻数对、画图
  18. L2CAP数据发送和接收
  19. Hutool - 日期时间工具 - DateUtil
  20. mysql删除的表格怎么还原_mysql删除的表格怎么恢复数据

热门文章

  1. 工作流入门(基础概念篇)
  2. 可软可硬,让人舒服到尖叫!这款伸缩自如的旅行枕让你三分钟入睡,除了拯救你的睡眠,还能拯救你的颈椎!太赞了!...
  3. Java队列、线程池及ThreadPoolExecutor自定义线程池实现
  4. 三星a9 android7.1,安卓7.1+高通骁龙835+连三星都虚的牌照!即将来袭的一加手机5简直要逆天了...
  5. DeleteDC() 与 ReleaseDC() 的区别
  6. 凯文·凯最新演讲:预测未来非常困难 但未来技术可以预测
  7. Android中 备份短信 还原短信
  8. oracle hint无效,使用了hint但是没有效果?
  9. Microsoft Office Excel 不能访问文件“XXXXXXXXXXXXX.xls”。 可能的原因有:
  10. RIFFA之LINUX驱动学习之一:CIRC_QUEUE文件