【蓝桥杯】ALGO-2最大最小公倍数 贪心

tech2025-10-14  4

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

输入格式 输入一个正整数N。

输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 504 数据规模与约定 1 <= N <= 10^6。

#include<stdio.h> #include<iostream> #include<math.h> #include<string.h> #include<algorithm> #include<functional> using namespace std; const int inf = 0x3f3f3f3f; const double pi = acos(-1); typedef long long ll; //ALGO-2 最大最小公倍数 int main() { ll n; scanf("%lld", &n); if(n <= 2) printf("%lld", n); else if(n % 2) //n是奇数 printf("%lld", n * (n - 1) * (n - 2)); //最大的三个数满足两两互质 else if(n % 3) //n是偶数且不是3的倍数 printf("%lld", n * (n - 1) * (n - 3)); //把(n - 2)换成(n - 3) else //n是偶数且是3的倍数 printf("%lld", (n - 3) * (n - 1) * (n - 2)); //把n换成(n - 3) return 0; }

【注】求三个数的最小公倍数要求这三个数两两互质; 已知:相邻的两个整数互质、相邻的两个奇数互质

最新回复(0)