ACdream1077:LCM Challenge

Problem Description

Some days ago, I learned the concept of LCM (least common multiple). I‘ve played with it for several times and I want to make a big number with it.

But I also don‘t want to use many numbers, so I‘ll choose three positive integers (they don‘t have to be distinct) which are not greater thann. Can you help me to find the maximum possible least common multiple
of these three integers?

Input

The first line contains an integer n (1?≤?n?≤?10^6) — the n mentioned in the statement.

Output

Print a single integer — the maximum possible LCM of three not necessarily distinct positive integers that are not greater than n.

Sample Input

9

Sample Output

504

题意:在n内找三个数,这三个数的最小公倍数,是n里面任意三个数的最小公倍数最大的
思路:这道题以前做过,但不记得在哪里了,思路就是找三个互质的数
奇数的话,那么n,n-1,n-2必定互质,那么n*(n-1)*(n-3)便是最大的
偶数的话,n-1是奇数,适用上面的式子,这是(n-1)*(n-2)*(n-3)
要么就是n,n-1,n-3互质,这就是n*(n-1)*(n-3),只要比较两者谁更大就可以了

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define ll long long

int main()
{
    ll n,ans,i;
    while(~scanf("%lld",&n))
    {
        if(n == 1)
        {
            printf("1\n");
            continue;
        }
        else if(n == 2)
        {
            printf("2\n");
            continue;
        }
        else if(n == 3)
        {
            printf("6\n");
            continue;
        }
        if(n%2)
            ans = n*(n-1)*(n-2);
        else
        {
            ans = (n-1)*(n-2)*(n-3);
            ans = max(ans,n*(n-1)*(n-3));
        }
        printf("%lld\n",ans);
    }

    return 0;
}

ACdream1077:LCM Challenge

时间: 2024-10-28 11:22:44

ACdream1077:LCM Challenge的相关文章

A - LCM Challenge

A - LCM Challenge Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description Some days ago, I learned the concept of LCM (least common multiple). I've played with it for several times and I w

acd LCM Challenge(求1~n的任意三个数的最大公倍数)

Problem Description Some days ago, I learned the concept of LCM (least common multiple). I've played with it for several times and I want to make a big number with it. But I also don't want to use many numbers, so I'll choose three positive integers

acd LCM Challenge(求1~n的随意三个数的最大公倍数)

Problem Description Some days ago, I learned the concept of LCM (least common multiple). I've played with it for several times and I want to make a big number with it. But I also don't want to use many numbers, so I'll choose three positive integers

acdream LCM Challenge (最小公倍数)

LCM Challenge Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description Some days ago, I learned the concept of LCM (least common multiple). I've played with it for several times and I want

HUST_ACdream区域赛指导赛之手速赛系列(1)(2)F——GCD+1ll——LCM Challenge

Description Some days ago, I learned the concept of LCM (least common multiple). I've played with it for several times and I want to make a big number with it. But I also don't want to use many numbers, so I'll choose three positive integers (they do

hdu 4497 GCD and LCM

GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 1092    Accepted Submission(s): 512 Problem Description Given two positive integers G and L, could you tell me how many solutions of (

题目1439:Least Common Multiple(求m个正数的最小公倍数lcm)

题目链接:http://ac.jobdu.com/problem.php?pid=1439 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: // // 1439 Least Common Multiple.cpp // Jobdu // // Created by PengFei_Zheng on 10/04/2017. // Copyright © 2017 PengFei_Zheng. All rights reserved. /

Codeforces 348B:Apple Tree(DFS+LCM+思维)

http://codeforces.com/contest/348/problem/B 题意:给一棵树,每个叶子结点有w[i]个苹果,每个子树的苹果数量为该子树所有叶子结点苹果数量之和,要使得每个结点的各个子树苹果数量相等,求至少需要拿走的苹果数量. 思路:一开始以为只要使得所有子树之和相同就行了. 1 void dfs(int u, int fa) { 2 int num = 0, mi = INF; 3 for(int i = head[u]; ~i; i = edge[i].nxt) {

GCD AND LCM

1 #include <cstdio> 2 __int64 GCD(__int64 a,__int64 b) 3 { 4 if (a % b == 0) 5 return b; 6 else 7 return GCD(b,a%b); 8 } 9 __int64 LCM(__int64 a,__int64 b) // a * b ==gcd*lcm 10 { 11 return a / GCD(a,b) * b ; 12 } 13 int main() 14 { 15 __int64 a,b;