zoukankan      html  css  js  c++  java
  • C语言 · 最大最小公倍数

    算法训练 最大最小公倍数  
    时间限制:1.0s   内存限制:256.0MB
          
    锦囊1
      使用贪心来选择。
    锦囊2

      当n为奇数时,答案一定是n*(n-1)*(n-2)。

      当n为偶数时,答案可能是(n-1)*(n-2)*(n-3),也可能是n*a*b,其中a>=n-3。

     
    问题描述

    已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

    输入格式

    输入一个正整数N。

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

    1 <= N <= 106。

    作者注释:注意提干的数据规模,选用long long数据类型。

     1 /*
     2     当n是奇数时,n和n-2都是奇数,n-1是偶数,那么他们三个的公约数
     3 肯定不是2,而因为这三个数是连续的,所以大于2的数都不可能成为
     4 他们或其中任意两个数的公约数了——即当n为奇数,结果就是n*(n-1)*(n-2).
     5     而当n为偶数时,因为n和n-2都是偶数,那么只能将n-2改成n-3,
     6 即n*(n-1)*(n-3),如果这三个数两两互质那么肯定就是结果了,若不行则将n-3改
     7 为n-4,如此检测下去知道满足两两互质.
     8 */
     9 #include<stdio.h>
    10 int main(){
    11     long long N;
    12     long long answer;
    13     scanf("%lld",&N);
    14     if(N<=2)
    15         answer = N;
    16     else if(N==3)
    17         answer = 6;
    18     else if(N%2==1)//若N为奇数 
    19         answer = N*(N-1)*(N-2);
    20     else{//若N为偶数 
    21         if(N%3==1)
    22             answer = N*(N-1)*(N-3);
    23         else 
    24             answer = (N-3)*(N-1)*(N-2);
    25     }
    26     printf("%lld",answer);
    27 }
  • 相关阅读:
    朴素贝叶斯估计
    k临近法的实现:kd树
    感知机学习算法
    Logistic回归的牛顿法及DFP、BFGS拟牛顿法求解
    Logistic回归
    线性回归的梯度下降和正规方程组求解
    Redis学习笔记(8)-发布/订阅
    Redis学习笔记(7)-事务
    Redis学习笔记(6)-SortedSet
    Redis学习笔记(5)-Set
  • 原文地址:https://www.cnblogs.com/panweiwei/p/6530303.html
Copyright © 2011-2022 走看看