zoukankan      html  css  js  c++  java
  • Least Common Multiple (HDU

    Least Common Multiple (HDU - 1019) 【简单数论】【LCM】【欧几里得辗转相除法】

    标签: 入门讲座题解 数论


    题目描述

     The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbers in the set. For example, the LCM of 5, 7 and 15 is 105.
    

    Input
    Input will consist of multiple problem instances. The first line of the input will contain a single integer indicating the number of problem instances. Each instance will consist of a single line of the form m n1 n2 n3 ... nm where m is the number of integers in the set and n1 ... nm are the integers. All integers will be positive and lie within the range of a 32-bit integer.
    Output
    For each problem instance, output a single line containing the corresponding LCM. All results will lie in the range of a 32-bit integer.
    Sample Input

    2
    3 5 7 15
    6 4 10296 936 1287 792 1
    

    Sample Output

    105
    10296
    

    题意

    给定几个数,求这几个数的最小公倍数。


    解析

    这是一道基础的欧几里得辗转相除法的题。可以使用朴素gcd算法不断求最小公倍数。


    通过代码

    /*
    Problem
        HDU - 1019
    Status
    	Accepted
    Memory
    	1372kB
    Length
    	466
    Lang
    	G++
    Submitted
    	2019-11-25 22:13:37
    Shared
    
    RemoteRunId
    	31637683
    */
    
    #include <bits/stdc++.h>
    using namespace std;
    
    int gcd(int a, int b)
    {
        return b? gcd(b, a % b): a;
    }
    
    int lcm(int a, int b)
    {
        return a / gcd(a, b) * b;   //注意此处不是 a * b / gcd,这样容易爆int.
    }
    int main()
    {
        int times;
        scanf("%d", &times);
    
        while(times --){
            int n;
            int t1, t2;
    
            scanf("%d%d", &n, &t1);
    
            for(int i = 1; i < n; i ++){
                scanf("%d", &t2);
    
                t1 = lcm(t1, t2);   //不断地将前面求得的最小公倍数当作a,新输入的数当作b,继续求最小公倍数.
            }
    
            printf("%d
    ", t1);
        }
    
        return 0;
    }
    
    

  • 相关阅读:
    Seam jBPM integration
    NetBeans 时事通讯(刊号 # 34 Nov 11, 2008)
    Seam jBPM integration
    小学生新闻联播看多了,写的作文
    位运算中的异或运算 .
    按位与、或、异或等运算方法
    C++中L和_T()之区别
    ExtJS入门之一 类与继承
    结构体初始化
    Ext.chart 包的类图
  • 原文地址:https://www.cnblogs.com/satchelpp/p/11939381.html
Copyright © 2011-2022 走看看