java公倍数_java中如何计算最小公倍数
问题描述:
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式:
输入一个正整数N。
输出格式:
输出一个整数,表示你找到的最小公倍数。
样例输入:
9
样例输出:
504
数据规模与约定:
1 <= N <= 106
在线学习视频教程推荐:java课程
思路:
首先声明几个概念:
两个非0相邻自然数的最小公倍数是它们的乘积;相邻两个奇数的最小公倍数是它们的乘积;相邻两个偶数(0除外)的最小公倍数是它们乘积的一半。
现在上升到三个数的最小公倍数,要按照N的奇偶性分两种情况:
一、当n为奇数:n、n-1、n-2的乘积
二、当n为偶数:n-1、n-2、n-3是一组极大解,如果答案要大于当前值,只能是大于这3个数的乘积,那么只能把其中一个数变成n,并且三个数也要两两互质。n、n-2、n-3偶偶奇明显不互质;n、n-1、n-3偶奇奇;n、n-1、n-2偶奇偶明显不互质。
那么答案只能是n-1、n-2、n-3或者是n、n-1、n-3。但是n、n-3虽然是一个奇数,一个偶数,但是它们不连续可能不互质例如5,6,3三个数。
n为奇数:n、n-1、n-2
n为偶数: n是3的倍数 n-1、n-2、n-3
n不是3的倍数 n、n-1、n-3
示例如下:import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
long N=input.nextLong();
long temp=0;
if(N<=2){
System.out.println(N);
}
else if(N%2==0){
temp=(N-1)*(N-2)*(N-3);
if(N%3!=0){
temp=Math.max(temp,N*(N-1)*(N-3));
}
System.out.println(temp);
}
else {
System.out.println(N*(N-1)*(N-2));
}
}
}
技巧:考虑N<3的情况,而且这道题注意用long。
推荐java相关文章教程:java开发入门
java公倍数_java中如何计算最小公倍数相关推荐
- java 最小公倍数_java中如何计算最小公倍数
问题描述: 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少. 输入格式: 输入一个正整数N. 输出格式: 输出一个整数,表示你找到的最小公倍数. 样例输入: 9 样例输出: ...
- java 事务_Java中事务总结详解(精华)
1.什么是JAVA事务? 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (is ...
- [转载] c++多态与java多态性_Java中的多态性
参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...
- java 且_JAVA中逻辑运算符“|”和“”与“||”和“”的用法
1.使用规则: (1)& 可以用作逻辑与的运算符,表示逻辑与(and) a.当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false ...
- java 包装类_Java中的包装类
Java中哪些需要包装类 它们将原始数据类型转换为对象.如果我们希望修改传递给方法的参数,则需要对象(因为基元类型是按值传递的). java.util包中的类只处理对象,因此在这种情况下包装类也有帮助 ...
- java 难度_java中难度大一点的面试题
1.请大概描述一下Vector和ArrayList的区别,Hashtable和HashMap的区别.(5) (1)Vector和ArrayList的异同 实现原理,功能相同,可以互用 主要区别: Ve ...
- math java 计算_Java中的数学计算函数汇总
Math类: java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(B ...
- java中的多态性_[转载] c++多态与java多态性_Java中的多态性
参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...
- c++多态与java多态性_Java中的多态性
c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meaning of polymorphism ...
- java引_JAVA中的引用
JDK1.2之后,Java扩充了引用的概念,将引用分为强引用.软引用.弱引用和虚引用四种. 强引用 类似于"Object a = new Object()"这类的引用,只要垃圾强引 ...
最新文章
- 唯一索引和普通索引的选择
- 看例子,学 Python(二)
- bzoj2538: [Ctsc2000]公路巡逻
- 百度贴吧个人主页_百度手机App商店社交应用排行榜,微信连续三个月霸占榜首...
- 美国量子计算机能编程吗,世界首台可编程通用量子计算机美国问世
- some useful tricks
- Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)下
- 一个大龄程序员对大家的总结性忠告(源于VeryCD)
- HTTPS上线过程说明
- Vue中computed,methods,watch用法上的异同
- 红旗linux apt,红旗 Linux 系统 V11 社区预览版(0122)发布
- 酒店计算机管理系统维护合同,酒店计算机管理系统维护合同协议书范本.pdf
- 程序员如何财务自由【原创】
- 与时俱进的迅捷多功能转换器
- 物联网 DFrobot 掌控版 人工智能测温实验
- 使用Python调用mdx字典文件进行查词
- 说说wps jsa的ListBox控件的数组写入方法
- 群晖Transmission的RSS订阅功能
- BZOJ4810 [Ynoi2017]由乃的玉米田
- 解决电脑上用耳机时声音太小的问题
热门文章
- 双活数据中心解决方案
- Egret之Eui.Button换肤
- 数论概论 第三章 勾股数组与单位圆
- 华为任命徐直军为华为云董事长,余承东任CEO | 任正非:做事要充满霸气,做人一定要谦卑!...
- DC升压直流高压电源模块12V24v转100V150V200V250V300V350v1000伏线性变化电压控制输出
- qlv转mp4播放不了,解决方法
- 2021年中国牛肉市场供需现状、进出口贸易及价格走势分析[图]
- 网管、桌面运维、技术支持 有出路吗
- 读《混世小农民》有感
- Acwing-4728. 乘方