最小公倍数方法是每乘一个数后要除以最大公因数。

// 手动实现gcd(适用于C++11之前)
long long gcd(long long a, long long b) {
    while (b) {
        long long t = a % b;
        a = b;
        b = t;
    }
    return a;
}

// 两数的最小公倍数
long long lcm(long long a, long long b) {
    return a / gcd(a, b) * b; // 先除后乘防溢出
}

__gcd实现

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,ans=1;
	cin>>n;
	for(int i=1;i<=n;i++){
		int a;
		cin>>a;
		ans *= a/__gcd(ans,a);
	}
	cout<<ans;
	return 0;
}

haihaihai

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注