zoukankan      html  css  js  c++  java
  • ACM_最小公倍数

    Lowest Common Multiple Plus

    Time Limit: 2000/1000ms (Java/Others)

    Problem Description:

    求n个数的最小公倍数。

    Input:

    输入包含多个测试实例,每个测试实例的开始是一个正整数n(2<=n<=100),然后是n个正整数(数字均大于0)。

    Output:

    为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个64位的整数。

    Sample Input:

    2 3 4 
    3 23 45 2

    Sample Output:

    12
    2070
    解题思路:求n个数的最小公倍数,(其中n>=2),先求出这两个数的最大公约数,再利用这两个数的乘积等于这两个数的最小公倍数和最大公约数的乘积即可求出n个数的最小公倍数。
    设两个数是a,b最大公约数是p,最小公倍数是q,则ab=pq,即q=ab/p(q=a/p*b或q=b/p*a)。本题就是根据这样的关系来求最小公倍数的。
    AC代码:
     1 #include<iostream>
     2 using namespace std;
     3 typedef long long LL ;
     4 LL gcd(LL a,LL b) //求两个数的最大公约数
     5 {
     6     return b ? gcd(b,a%b):a;
     7 }
     8 LL lcm(LL m,LL g)  //求两个数的最小公倍数
     9 {
    10     return m/gcd(m,g)*g;
    11 }
    12 int main()
    13 {
    14     int n;
    15     LL lowest,q;
    16     while(cin>>n){
    17         cin>>q>>lowest;
    18         lowest=lcm(q,lowest);
    19         n-=2;
    20         while(n--){
    21             cin>>q;
    22             lowest=lcm(q,lowest);
    23         }
    24         cout<<lowest<<endl;
    25     }
    26     return 0;
    27 }
     
  • 相关阅读:
    分布式共识协议RAFT基本原理
    slave_net_timeout, MASTER_HEARTBEAT_PERIOD, MASTER_CONNECT_RETRY,以及 MASTER_RETRY_COUNT设置和查看
    单例模式
    截取字符串Java
    Hibernate+struts+JqueryAjax+jSON实现无刷新三级联动
    数组集合区别
    Android Activity生命周期(图文)!
    Activity的生命周期
    Android四大组件
    各种时间获取 .net
  • 原文地址:https://www.cnblogs.com/acgoto/p/8783501.html
Copyright © 2011-2022 走看看