最大最小公倍数——《蓝桥杯刷题之路》


1. 题目要求

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

输入格式

输入一个正整数N。

输出格式

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

样例输入

9

样例输出

504

数据规模与约定

1 <= N <= 10^6。

2. 基本概念

首先要知道什么是最小公倍数,以及怎么去求最小公倍数。

2.1 最小公倍数的概念

公倍数(common multiple)指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数,其中除0以外最小的一个公倍数,叫做这几个数的最小公倍数

2.2 最小公倍数计算方法

2.2.1 分解质因数法

先把这几个数的质因数写出来,最小公倍数等于它们所有的质因数的乘积(如果有几个质因数相同,则比较两数中哪个数有该质因数的个数较多,乘较多的次数)。

看看下面例子就知道如何去做了。求45和30的最小公倍数。

45=3*3*5

30=2*3*5

45和30的不同质因数有一个2;共同的质因数有两个,分别是35

接下来共同的质因数,45中出现了两个3,所以计算最小公倍数的时候乘两个3。共同质因数5在45和30都只出现了一次,计算最小公倍数的时候乘一个5就行了。

因此,45和30的最小公倍数为:2*3*3*5=90

2.2.2 公式法

由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。

例如,求45和30的最小公倍数。

45和30的最大公约数为15,两者之积为45*30=1350

然后用1350除以15,即1350÷15=90

3. 解题思路

通过分解质因数法可以知道,最小公倍数的计算过程中,会因为有一些共同质因数,而导致最小公倍数小于两者的乘积,对于三个数的最小公倍数也是如此,因此我们要尽量避免这种因为共同质因数而带来的损失,就会使得我们得到的最小公倍数是局部最大的。因此只要我们找出三个最大的互质数之积,这题就解决了。

  1. 由于连续的3个数中,如果是奇数 偶数 奇数 ,那这三个数一定互质,证明方法也很简单。我们用反证法:

大前提是 n 为奇数,则 n-2、n-1、n这三个数满足奇数 偶数 奇数

我们先证明 n 和 n-2 这两个奇数互质。

假设 n 和 n-2 不互质,那么就存在一个公约数 p(p>1,且为整数),使得 n = p * q ( q 为整数),n-2 =

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值