xtu oj 1334 Least Common Multiple

发布时间:2024年01月14日

题目描述

一个集合,任取3个不同的元素,求其最小公倍数中最小的值是多少?

输入

第一行是样例数T(1≤T≤100)。 每个样例的第一行是一个整数n(3≤n≤50),表示集合元素的个数。 每个样例的第二行是n个整数a1,a2,…,an,1≤ai≤106。

输出

每个样例输出一行。

样例输入

3
5
2 3 5 7 11
5
2 3 5 7 15
6
12 3 2 1 6 4

样例输出

30
15
4

AC代码

#include<stdio.h>
#define ll long long
ll gcd(ll a,ll b){
	ll t;
	while(a%b!=0){
		t=a%b;
		a=b;
		b=t;
	}
	return b;
}
ll lcm(ll a,ll b){
	return a*b/gcd(a,b);
}
int main(){
	int T;
	scanf("%d",&T);
	while(T--){
		int n,i,j,k;
		scanf("%d",&n);
		ll a[55]={};
		for(i=0;i<n;i++){
			scanf("%I64d",&a[i]);
		} 
		ll min=lcm(lcm(a[0],a[1]),a[2]);
		for(i=0;i<n-2;i++){
			for(j=i+1;j<n-1;j++){
				for(k=j+1;k<n;k++){
					ll t=lcm(lcm(a[i],a[j]),a[k]);
					if(t<=min)min=t;
				}
			}
		}
		printf("%I64d\n",min);
	}
}

遇到比较多个数值时,可以采用两两相比的方法。

文章来源:https://blog.csdn.net/m0_75005390/article/details/135577728
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。