Description

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

Input

多组输入,每组输入一个正整数N。(1<=N<=10^5)

Output

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

Sample Input

9

Sample Output

504

这个题的意思就是要我们在1~N的范围内找三个数,使他们的最小公倍数在这个范围内的组合是最大的。那么,如果我们找三个两两互质的数,这样只需要相乘即可,就没有需要约分的地方。

接下来先说一个结论:大于1的两个相邻的自然数必定互质。

而对于1~N的范围,肯定是 n*(n-1)*(n-2)的乘积最大、如果这三个数还两两互质的话那就最棒了。

如果n是奇数,那么 n、n-1、n-2必定两两互质,要是有些纠结的话,那么我们就分析在什么情况下可能会存在公因子。n是奇数,那么n,n-1,n-2一定是两奇加一偶的情况。公因子2直接pass,因为只有一个偶数。假设剩下的n,n-2中有一个数能被3整除,那么有公因子的数一定是n或n-2加减3才能得到的情况。为此,n,n-1,n-2的乘积不仅是最大的,而且一定两两互质。

如果n是偶数,继续分析n*(n-1)*(n-2),这样的话n和n-2必定有公因子2,那么就换成式子n*(n-1)*(n-3)。然后仔细思考一下,不行啊,若偶数本身就能被3整除的话,那么式子n*(n-1)*(n-3)也不成立了,n和n-3就有公因子3,再仔细思考一下,式子就变成了(n-1)*(n-2)*(n-3),两奇夹一偶的情况。

代码如下:

#include<stdio.h>
int main()
{long long int n;while(scanf("%lld",&n)!=EOF){if(n<=2)printf("%lld\n",n);else if(n%2){printf("%lld\n",n*(n-1)*(n-2));}else{if(n%3==0){printf("%lld\n",(n-1)*(n-2)*(n-3));}elseprintf("%lld\n",n*(n-1)*(n-3));}}return 0;
}

求两个数的最小公倍数

#include<stdio.h>
int main()
{int a,b,c,p;while(scanf("%d%d",&a,&b)!=EOF){p=a*b;if(a>=b){while(b!=0){c=a%b;a=b;b=c;}printf("%d\n",p/a);}else{while(a!=0){c=b%a;b=a;a=c;}printf("%d\n",p/b);}}return 0;
}

求三个数的最小公倍数

方法一:

#include<stdio.h>
int main()
{int a,b,c,p,i,t;while(scanf("%d%d%d",&a,&b,&c)!=EOF){if(a>b)     //按升序排列a,b,c{t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}for(i=a;;i++){if(i%a==0&&i%b==0&&i%c==0){printf("%d\n",i);break;}}}return 0;
}

但是该方法比较耗时,做题时可能会超时。其他方法后续补充。

求最小公倍数(扩展版)相关推荐

  1. 同义词词林 java_基于同义词词林扩展版的词语相似度计算

    词语相似度计算 词义相似度计算在很多领域中都有广泛的应用,例如信息检索.信息抽取.文本分类.词义排歧.基于实例的机器翻译等等.国内目前主要是使用知网和同义词词林来进行词语的相似度计算. 本文主要是根据 ...

  2. Python程序:求最小公倍数

    Python程序:求最小公倍数 --摘自远山启<数学与生活>第二版 1.大数倍数法 2.利用最大公约数 两个整数的乘积除以它们的最大公约数,就是它们的最小公倍数. Python的math模 ...

  3. 常见算法:C语言求最小公倍数和最大公约数三种算法

    最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,当中一个最小的公倍数是他们的最小公倍数,相同地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接 求 ...

  4. python求最小公倍数_python求最大公约数和最小公倍数的简单方法

    python怎么求最大公约数和最小公倍数 一.求最大公约数 用辗转相除法求最大公约数的算法如下: 两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数.比如10和 ...

  5. 算法练习一:求最小公倍数

    求最小公倍数, 两个数的乘积=2个数的最大公约数*最小公倍数 最大公约数的求法:辗转相除法. 2个数a和b,最大公约数等于a/b的余数r和b的最大公约数, 如果r余数为0则b为最大公约数 privat ...

  6. Joe一款个人博客typecho主题(扩展版)

    介绍: 1.原版有的都有,扩版是增加或微调,依然原滋原味的. 2.导航部分,首页向下滚动隐藏.回滚显示导航:文章详情页向下滚动隐藏并显示文章标题.回滚显示导航 3.移动端侧边栏,页面部分超过设置的个数 ...

  7. JavaScript求最小公倍数

    文章出自个人博客https://knightyun.github.io/2019/09/03/js-lcm,转载请申明. 最小公倍数(Least Common Multiple) 最小公倍数是中学数学 ...

  8. php怎么求最小公倍数,PHP编程求最大公约数与最小公倍数的方法示例

    本文实例讲述了PHP编程求最大公约数与最小公倍数的方法.分享给大家供大家参考,具体如下: //求最大公约数 function max_divisor($a,$b) { $n = min($a, $b) ...

  9. php怎么求最小公倍数,C++_详解C语言求两个数的最大公约数及最小公倍数的方法,求两个正整数的最大公约数nbs - phpStudy...

    详解C语言求两个数的最大公约数及最小公倍数的方法 求两个正整数的最大公约数 思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法.通式分别为 f(x, y) = f(y, x%y) ...

  10. light_oj 1236 求最小公倍数( lcm(a,b) )等于n的数对 素因数分解

    light_oj 1236 求最小公倍数( lcm(a,b) )等于n的数对  素因数分解 H - Pairs Forming LCM Time Limit:2000MS     Memory Lim ...

最新文章

  1. Logistics Regression公式推导
  2. springboot中使用poi导出excel文件(亲测实现了第一个功能)
  3. 程序员的10条黄金法则,你懂?
  4. 【数据操作】优化SQL server性能 之 索引 (转上)
  5. linux修改可执行程序,反汇编,修改,然后重新组装一个Linux可执行文件
  6. 腾讯云短信发送api(SendSms)--java
  7. android开发的学习路线
  8. 论文笔记_S2D.40_2017_CVPR_半监督深度学习的单目深度图预测
  9. SharePoint 2007和WSS 3.0 SDK 1.2 Release
  10. mysql卸载不干净时,如何干净利索的卸载mysql数据库(完整版)
  11. 手机微信和QQ接收到的文件路径
  12. Python图形处理
  13. Linux gre tunnel 端口,两台Linux通过GRE tunnel的隧道实现互通 — 并且改变其中一台的回程路由...
  14. 橙单微服务的权限部分
  15. 白杨SEO:微信视频号直播功能怎么开通?视频号有什么价值?
  16. c语言课设航班信息管理软件管理系统,c语言航班信息查询系统实验报告.doc
  17. eclipse's problem
  18. Windows10 使用 Sony PHA-1 耳放
  19. 【CodeForces】CF13C Sequence(配数学证明)
  20. rbac.authorization.k8s.io/v1beta1 RoleBinding is deprecated in v1.17+, unavailable in v1.22+;

热门文章

  1. 2021最新 北京互联网公司排名
  2. 进入pe系统 原系统启动服务器,pe和启动系统安装系统教程
  3. Java:从1循环到150,在每行打印一个值,另外在每个3的倍数行上打印出foo“,在每个5的倍数行上打印“biz“,在每个7的倍数行上打印“baz“
  4. [软考]项目目标VS项目基准
  5. Revit二开 VS附加Revit时闪退程序
  6. ae 能在linux上运行吗,玩了这么久Linux,这些使用技巧你可能还不知道!
  7. CodeForces 868C Qualification Rounds
  8. SVN SSL错误解决
  9. LTE中 IMEI, GUTI, IMSI,S-TMSI等符号的含义
  10. 内网渗透- *** PTH(传递哈希)***PTT(传递票据)***PTK(传递密钥)