大于1的两个相邻自然数必定互质

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 13:01   24   0

题目:从1-n中选择三个数,使得这三个数取得最大的最小公倍数

分析:当n为奇数时,n*(n-1)*(n-2)三个数取得最大的最小公倍数,它们三个数两两互质

当n为偶数时,n和n-2有公因子2,n-3和n可能有公因子3,需要判断n是否是3的倍数

当n为偶数且为3的倍数时,(n-1)(n-2)(n-3)取得答案

否则,n(n-1)(n-3)取得答案

代码如下:

#include<iostream>
#include<cstdio>
using namespace std;
typedef long long LL;
int main()
{
    int n;
    while(scanf("%d",&n)==1&&n)
    {
        if(n<=2) cout<<n<<endl;
        else if(n%2) cout<<(LL)((LL)n*(n-1)*(n-2))<<endl;
                else {
                    if(n%3) cout<<(LL)((LL)n*(n-1)*(n-3))<<endl;
                    else cout<<(LL)((LL)(n-1)*(n-2)*(n-3))<<endl;
                }
    }
    return 0;
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP