蓝桥杯-最大最小公倍数
来源:互联网 发布:网络用语我爱萝卜 编辑:程序博客网 时间:2024/05/23 23:49
问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式 输入一个正整数N。输出格式 输出一个整数,表示你找到的最小公倍数。样例输入 9样例输出 504数据规模与约定 1 <= N <= 106。
如果按照正常的暴力搜索来解决问题,可想而知肯定会超时的,所以要知道一点:相邻的两个正整数是互斥的,而且互斥的正整数的最小公倍数就是这两个正整数的乘积。
如果输入的n是奇数,那么n、n-1、n-2必定是两两互斥的(两奇夹一偶)
如果输入的n是偶数,n和n-2必定有公因子2,因此我们将n-2换成n-3试一下,但如果偶数n本身就可以被3整除,那么n-3也可以被3整除,所以当n既是偶数,又可以被3整除的时候我们直接用n-1、n-2、n-3三个数(两奇夹一偶)的乘积来表示最大最小公倍数。
#include <iostream>using namespace std;/*int main(){ long n; cin>>n; long long Max=0,LCM=1; for(int i=1;i<n;i++) { for(int j=i+1;j<n;j++) { for(int k=j+1;k<=n;k++) { int l=i,m=j,n=k; while(l%2==0&&m%2==0&&n%2==0){ LCM*=2; l/=2;m/=2;n/=2; } LCM=LCM*l*m*n; if(LCM>Max)Max=LCM; LCM=1; } } } cout<<Max; return 0;}*/int main(){ long long n,ans; cin>>n; if(n<=2)ans=n; else if(n%2)ans=n*(n-1)*(n-2); else{ if(n%3)ans=n*(n-1)*(n-3); else ans=(n-1)*(n-2)*(n-3); } cout<<ans; return 0;}
阅读全文
0 0
- 【蓝桥杯】最大的最小公倍数
- 蓝桥杯 求最大最小公倍数
- 蓝桥杯 最大最小公倍数
- 蓝桥杯:最大最小公倍数
- 【蓝桥杯】最大的最小公倍数
- 蓝桥杯 最大最小公倍数
- 最大最小公倍数(蓝桥杯)
- 蓝桥杯之最大最小公倍数
- 蓝桥杯 - 最大最小公倍数
- 蓝桥杯--最大最小公倍数
- 最大最小公倍数 java 蓝桥杯
- 蓝桥杯:最大最小公倍数
- 蓝桥杯 最大最小公倍数
- 蓝桥杯ALGO_02(最大最小公倍数)
- 最大最小公倍数(蓝桥杯)
- 蓝桥杯最大最小公倍数
- 蓝桥杯 最大最小公倍数
- 蓝桥杯 最大最小公倍数
- Hibernate中的事务
- 机器学习实战——Logistic回归
- Windows常用操作
- 【学习C++】学习C++ -> 选择结构程序设计
- python模块及安装学习
- 蓝桥杯-最大最小公倍数
- DEDECMS后台无法登陆并跳转回登陆界面的解决方法
- DBSCAN算法学习笔记及scala实现
- (头条)Cordova+React+OnsenUI+Redux新闻App开发实战教程
- Rational Rose 2007 下载,安装及破解激活图文教程
- django+nginx+uwsgi+service部署web应用
- mysql学习
- 《TCP/IP详解 卷1》 笔记: UDP协议
- RS常用命令