n个数的最小公倍数

1.利用公式法求两个数最小公倍数

假设现在要求最小公倍数的两个数为x,y,他们的最大公约数为p,最小公倍数为q。则x*y=p*q

2.最大公约数求法
int gg(int a,int b){
    int c;
    while(b){
        c=a;
        a=b;
        b=c%b;
    }
    return a;
}
3.求几个数的最小公倍数

k=a;
k(a,b)=a*b/gg(a,b)
不断求两个数的最小公倍数与第三个数的最小公倍数

4.例题

题目描述
给定n个数字,求这n个数字的最小公倍数。

输入
输入分两行,第一行是一个n,代表有n个数字,接着第二行输入n个数字,数字均在int范围内

输出
输出这n个数字的最小公倍数,保证结果在int范围内

样例输入
3
1 2 3
样例输出
6

代码:

#include<iostream>
using namespace std;

int gg(int a,int b){
    int c;
    while(b){
        c=a;
        a=b;
        b=c%b;
    }
    return a;
}
//k(a,b)=a*b/gg(a,b)
int main(){
    int n,a[1001];
    cin>>n;
    for(int i=0;i<n;++i){
        cin>>a[i];
    }
    long long k=a[0];
    for(int i=1;i<n;++i){
        k=k*a[i]/gg(k,a[i]);
    }
    cout<<k<<endl;
} 

猜你喜欢

转载自blog.csdn.net/qq_40828914/article/details/81135423