求多个数最小公倍数和最大公约数

求两个数最大公约数

int gcd(int n,int m)
{
    return m>0?gcd(m,n%m):n;
}

求两个数最小公倍数

int lcm(int n,int m,int r)
{
    return n*m/r;//n,m分别是两个数,r是两个数的最大公约数
}

求n个数的最小公倍数

#include<iostream>
using namespace std;
int gcd(int n,int m)
{
    return m>0?gcd(m,n%m):n;
}
int lcm(int n,int m,int r)
{
    return n*m/r;//n,m分别是两个数,r是两个数的最大公约数
}
int main()
{
    int n,k;
    int a[50];
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
        k=1;
        for(int i=0;i<n;i++)
        {
            k=lcm(k,a[i],gcd(k,a[i]));
        }
        cout<<k<<endl;
    return 0;
}

求多个数的最大公约数

#include<iostream>
#include<stdio.h>
using namespace std;
int gcd(int n,int m)
{
    return m>0?gcd(m,n%m):n;
}
int lcm(int n,int m,int r)
{
    return n*m/r;//n,m分别是两个数,r是两个数的最大公约数
}
int main()
{
    int n,k;
    int a[50];
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
        k=gcd(a[0],a[1]);
        for(int i=2;i<n;i++)
        {
            k=gcd(k,a[i]);
        }
        cout<<k<<endl;
    return 0;
}

  

猜你喜欢

转载自www.cnblogs.com/caijiaming/p/9147018.html