算法训练之最大最小公倍数 ALGO002

简介: 算法训练之最大最小公倍数 ALGO002

算法训练之最大最小公倍数 ALGO002

问题描述

已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

输入格式

输入一个正整数N。

输出格式

输出一个整数,表示你找到的最小公倍数。

样例输入

9

样例输出

504

数据规模与约定

1 <= N <= 106

当看到这个题目第一眼,想当然的以为会是N (N-1) (N-2)三者乘积,并且这个题目给出输入示例的9刚好输出示例的504符合这个想法,但仔细一想就会发现不对,比如当N = 6时,1~6的最小公倍数是3 * 4 * 5 =60,因此发现有数学知识涉及,不是简单的最后三个数相乘

这个题涉及到的数学知识:

(1)、当N为奇数时,那么N,N-1,N-2互为质数,很明显NN-1N-2是1~N最小公倍数的最大值。

(2)、当N为偶数时,且能被3整除时,N-1,N-2,N-3互质,此时(N-1)(N-2)(N-3)是1到N最小公倍数的最大值;当N为偶数时,但不能被3整除时,N,N-1,N-3互质,此时N*(N-1)*(N-3)是1~N最小公倍数的最大值。

好了,话不多说,我的源代码如下:

import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int N = scanner.nextInt();
    long []array = new long[N];
    for (int i = 0; i < N; i++) {
      array[i] = i + 1;
    }
    long m = 0 ;
    if (N % 2 == 1) {
      m = array[N-3] * array[N-2] * array[N-1];
    }else {
      if (N % 3 == 0) {
        m = array[N-4] * array[N-3] * array[N-2];
      }else {
        m = array[N-4] * array[N-2] * array[N-1];
      }
    } 
    System.out.println(m);
    scanner.close();
  }
}


相关文章
|
3月前
|
算法
求最大公约数和最小公倍数的算法
求最大公约数和最小公倍数的算法
25 0
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数
17 0
|
3月前
|
算法 Python
最小公倍数算法
最小公倍数算法
|
11月前
|
算法 C++
每日算法系列【LeetCode 1363】形成三的最大倍数
每日算法系列【LeetCode 1363】形成三的最大倍数
|
算法
求最大公约数和最小公倍数的几种算法
求最大公约数和最小公倍数的几种算法
88 0
|
算法
例题:1.正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数 2.将一句话的单词进行倒置,单词之间空格,标点不倒置,字母不超100
例题:1.正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数 2.将一句话的单词进行倒置,单词之间空格,标点不倒置,字母不超100
136 0
|
算法 BI C++
【c++】三种算法求最小公倍数与最大公约数
【c++】三种算法求最小公倍数与最大公约数
844 0
|
算法 BI C++
【c++】三种算法求最小公倍数与最大公约数
【c++】三种算法求最小公倍数与最大公约数
【c++】三种算法求最小公倍数与最大公约数
|
算法
【算法实践】| 一步步手把手带你实现寻找最小公倍数
其实最小公倍数的概念和计算最小公倍数的方法.那是我们在学习小学数学的时候就已经掌握的数学知识,为了更加通俗易懂一点,本文先从一个'分元宝'的故事入手: 亡故的先父留下遗嘱, 共有遗产17个元宝, 老大得元宝的二分之一、 17/2=8.5 老二得元宝的三分之一、 17/3=5.66666 老三得元宝的九分之一、 17/9=1.8 问他们每一个人分别应该分几个元宝? 在《一代大商孟洛川》中是这样做的 孟洛川拿来一个元宝加上去 好了,现在分元宝 答案是:老大9个元宝、老二6个元宝、老三2个元宝。 还剩下一个元宝,是我们孟洛川的,拿回来 很不可思议吧 很简单的初中数学题老大分1/2,老二分1/3,老三
338 1
|
算法
算法竞赛刷题:[NOIP2001 普及组] 最大公约数和最小公倍数问题
算法竞赛刷题:[NOIP2001 普及组] 最大公约数和最小公倍数问题
146 0