题目连接:codeforces 235A
题意:
求小于等于 n 的三个数的最大的公倍数
题解:
分析 : 相邻的奇数互质,相邻的整数互质
当 n 小于等于 2时,ans = n
当n为奇数,最大的公倍数即为 ans = n * (n - 1) * (n - 2)
当n 为偶数: 当 n %3 != 0 意味着n和n-3没有约数 ans = n * (n - 1) * (n - 3)
当 n % 3 == 0意味着 n 和 n-3的约数为3 所以 ans = (n - 1) * (n - 2) * (n - 3)
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n;
cin >> n;
if(n <= 2){
cout << n << endl;
}
else{
if(n % 2 != 0){
cout << n * (n-1) * (n-2) << endl;
}
else if(n % 3 != 0){
cout << n * (n-1) * (n-3) << endl;
}
else{
cout << (n-1) * (n-2) * (n-3) << endl;
}
}
return 0;
}
php

本文解析了Codeforces235A题目,详细介绍了如何寻找小于等于n的三个数的最大公倍数。通过分析奇偶性和n与3的取模关系,给出了简洁高效的解题算法。
1153

被折叠的 条评论
为什么被折叠?



