没想到这道题还需要不少的基础知识啊,数论(互质)还有一点不正宗的贪心

这道题是说从1~N中任选出三个数,求出他们的最小公倍数最大为多少,感觉有点生疏,对数论还有单陌生、、、

求出三个数的最小公倍数,运用贪心的原则,使每一步都是最大的,怎么才能达到每一步,也就是首先两个需要公倍数最大,也就是,对,就是这两个是互质的,从而步步贪心,得出三个数中是两两互质的,因此,在这里有必要对互质了解一下。

定义:公约数只有1的两个数,叫做互质数。(1既不是质数也不是合数)

显然仅靠定义是解决不掉互质的判断的,需要推论,也就是数论的一些东西作为引导。

结论:

(1)两个不相同质数一定是互质数。 例如,2与7、13与19。

(2)相邻的两个自然数是互质数。如 15与 16。

(3)相邻的两个奇数是互质数。如 49与 51。

(5)1不是质数也不是合数,它和任何一个自然数在一起都是互质数。如1和9908。

(4)一个质数如果不能整除另一个合数,这两个数为互质数(即小数是质数,大数不是小数的倍数的两个数是互质数)。如 7和 16、3与10、5与 26。

(6)大数是质数的两个数是互质数。如97与88。

(8)两个数都是合数(二数差又较大),小数所有的质因数,都不是大数的约数,这两个数是互质数。 如357与715,357=3×7×17,而3、7和17都不是715的约数,这两个数为互质数。

(9)两个数都是合数(二数差较小),这两个数的差的所有质因数都不是小数的约数,这两个数是互质数。如85和78。 85-78=7,7不是78的约数,这两个数是互质数。

(10)两个数都是合数,大数除以小数的余数(不为“0”且大于“ 1”)的所有质因数,都不是小数的约数,这两个数是互质数。如 462与 221 462÷221=2……20, 20=2×2×5。 2、5都不是221的约数,这两个数是互质数。 (这好像是求最大公约数方法的一个特例,也就是他们的最小公约数为1了

(11)减除法。如255与182。 255-182=73,观察知 73182。 182-(73×2)=36,显然 3673。 73-(36×2)=1, (255,182)=1。 所以这两个数是互质数。 三个或三个以上自然数互质有两种不同的情况:一种是这些成互质数的自然数是两两互质的。如2、3、4。另一种不是两两互质的。如6、8、9。(辗转相除术?)

至于本题好像用的相对推导的东西稍多,需要基本分四种情况讨论,这里借鉴一下篇解释的很好的博客。

思路:若n 和 n-1和n-2 三个数 两两互质的话,那么结果就是这三个数的积。

根据数论知识:任意大于1的两个相邻的自然数都是互质的.

我们可以知道,当n是奇数时,n 和n-2都是奇数,n-1是偶数,那么他们三个的公约数肯定不是2,而因为这三个数是连续的,所以大于2的数都不可能成为他们或其中任意两个数的公约数了.结果就是他们三个的乘积.

而当n为偶数时,n*(n-1)*(n-2)肯定不行了,因为n和n-2都是偶数,那么只能将n-2改成n-3,即n*(n-1)*(n-3),如果这三个数两两互质那么肯定就是结果了.

但是因为n和n-3相差3,所以当其中一个数能被3整除时,另一个肯定也可以.而当其中一个不可以时,另一个肯定也不可以.而因为n为偶数,n-3为奇数,所以2不可能成为他俩的公因子。对于大于3的数,肯定就都不可能成为这三个数或者其中任意两个数的公约数了.因此只需再对3进行判断:

如果n能整除3,那么,n*(n-1)*(n-3)就肯定不行了,因为n和n-3有了公约数3,结果肯定小了,那么就只能继续判下一个即n*(n-1)*(n-4)而这样n-4又是偶数,不行继续下一个n*(n-1)*(n-5) = n^3 -6*n^2 + 5*n 而如果这个可以 那个其值肯定要小于(n-1)*(n-2)*(n-3) = n^3 -6*n^2+11n-6(对于n>1来说都成立),而(n-1)*(n-2)*(n-3)由上一个奇数结论可知是一个符合要求的,因此到n-5就不用判断了。直接选答案为(n-1)*(n-2)*(n-3);

而n不能整除3,那么结果就是n*(n-1)*(n-3),因为n和n-3都不能整除3,此时n-1能不能整除3都无关紧要了.而对于其它数 都是不可能的.上面已证.

点击网址

实现代码:

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
int main(){long long ans, n;while(cin >> n){if(n<=2)  ans = n;elseif(n%2) ans = n*(n-1)*(n-2);//n为奇数 else //n为偶数 if(n%3)ans = n*(n-1)*(n-3);   else ans = (n-3)*(n-1)*(n-2);cout<<ans<<endl;}return 0;
}

不过只能过60%,好像是后台的数据有问题,感觉推导挺对的。。。




蓝桥-最大最小公倍数(互质) (贪心)相关推荐

  1. 搞懂质数,质因子,互质,最大公约数,最小公倍数.

    1.质数: 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 借鉴y总的代码: bool is_prime(int n){     if(n<2)  return fals ...

  2. 最大公约数和最小公倍数、判断两数互质

    辗转相除法 import java.util.Scanner; public class Main {public static void main(String[] args){Scanner sc ...

  3. 【Java常用方法】求两个数的最大公因数、最小公倍数,两数是否互质

    最大公因数 最好的办法就是gcd辗转相除法.有两种方式,一种是迭代,一种是递归. //迭代版本 int gcd(int a,int b){while(b!=0){int r=b;b=a%b;a=r;} ...

  4. 第十一届蓝桥杯 ——互质

    问题描述 今年是 2020 年,今天是 10 月 18 日. 请问在 1 到 2020 中,有多少个数与 1018 互质. 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可. 本题的结果为一 ...

  5. hdu 3579(中国剩余定理非互质)

    解题思路:这道题目因为不一定是互质的,所以直接套用中国剩余定理肯定是错的,,这里采用的是非互质的方法...之前的博客上面有详细的证明过程和算法,这里就不罗嗦了..但是这道题目在输出的时候有特定的要求, ...

  6. hdu 1573(中国剩余定理非互质情况)

    解题思路:这道题目有可能a[i],两两不互质,所以直接用中国剩余定理肯定是不对的..这里考虑非互质的情况 问题描述:给出bi,ni的值,且n1, n2, n3,-, ni两两之间不一定互质,求Res的 ...

  7. 2020牛客暑期多校训练营(第四场)H.Harder Gcd Problem(把1到n分为不互质的数对,找最多的对数)

    题目大意:把1到n分为不互质的数对,找最多的对数 思路:先从最大的质因数开始找,因为小的比大的更容易匹配,所以贪心的从大的开始找. 首先要预处理出所以数的最大质因数. 然后根据质因数从大往小找,当质因 ...

  8. 三个数互质 java_LeetCode 5198. 丑数 III(Java)容斥原理和二分查找

    请你帮忙设计一个程序,用来找出第 n 个丑数. 丑数是可以被 a 或 b 或 c 整除的 正整数. 示例 1: 输入:n = 3, a = 2, b = 3, c = 5 输出:4 解释:丑数序列为 ...

  9. 两个互质整数的线性组合问题

    两个互质整数的线性组合问题 本文我们讨论两个互质整数的线性组合问题,以及相关的二元一次不定方程. 两个互质整数的线性组合 已知两个整数aaa和bbb互质,即gcd⁡(a,b)=1\gcd(a,b)=1 ...

最新文章

  1. 显式锁select for update 用法
  2. codecomb 2091【路径数量】
  3. 织梦DEDECMS网站留言板提交时验证码错误返回空白页的解决办法
  4. 关键帧 关于decode_one_frame函数
  5. 我的HTML学习之路02
  6. AppCan开发者资料分享(定期更新)
  7. 谷歌大脑提出gMLP:请多多关注MLP
  8. date.getMonth() date.getDate())
  9. MATLAB | 全网唯一,双变量及三变量映射图表的MATLAB绘制
  10. 小技巧(8)pimple模式
  11. vlookup多条件的使用
  12. 软件方法(下)分析和设计第8章连载[20210723更新]
  13. asp.net mvc 连接sqlserver数据库
  14. Web开发浅涉(以JAVA为例)
  15. [论文阅读] (15)英文SCI论文审稿意见及应对策略学习笔记总结(letpub爬虫)
  16. 手机酒精测试仪软件有用么,酒精测试仪软件真管用? 不靠谱!
  17. netty之微信-Netty 是什么?(三)
  18. 2.基于文心大模型套件ERNIEKit实现文本匹配算法,模块化方便应用落地
  19. 股票价格走势的行业关联性
  20. jqweui Toast

热门文章

  1. hadoop的journalnode节点出现Can‘t scan a pre-transactional edit log错误解决办法
  2. 自定义Firefox、IE收藏夹
  3. crmeb 多商户app打包教程
  4. 武汉大学计算机系王侃,武汉大学信息管理学院
  5. 35美元与35万美元
  6. 腾讯T1~T9级别工程师分别需要具备哪些能力你知道吗?
  7. 扫盲:mmdetection安装以及训练自己的数据集
  8. 织梦 PHP 字段 调用,织梦怎么调用自定义字段
  9. git报错:LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 解决方法
  10. Python笔记之不可不练