HDU 2028最小公倍数LCM 最大公约数GCD

来源:互联网 发布:淘宝跑路双十一 编辑:程序博客网 时间:2024/03/29 01:45

最小公倍数(LCM)

最大公约数(GCD)

LCM(a, b) = a * b / GCD(a,b);

或者: lcm(a, b) = a/gcd(a,b) * b;  // 这个可以防溢出

 

// hdu 2028#include<iostream>using namespace std;int gcd(int a, int b);int lcm(int a, int b);int main(){    int n;    int data[256];    while(cin >> n)    {        for(int i=0; i<n; i++)        {            cin >> data[i];        }        int result = lcm(data[0],data[1]);        for(int i=2; i<n; i++)        {            result = lcm(result , data[i]);        }        cout << result << endl;    }}int gcd(int a, int b){    int temp;    if(a < b)    {        temp = a;        a = b;        b = temp;    }    while(b != 0)    {        temp = a%b;        a = b;        b = temp;    }    return a;}int lcm(int a, int b){    return a/gcd(a,b) * b ;}


 

原创粉丝点击