题目描述
给定5个正整数, 它们的最小的众倍数是指的能够被其中至少三个数整除的最小正整数。 给定5个不同的正整数, 请计算输出它们的最小众倍数。
输入描述:
输入包括一行,一行中有五个各不相同的正整数a, b, c, d, e(1 ≤ a, b, c, d, e ≤ 100), 以空格分割
输出描述:
输出一个整数,表示它们的最小众倍数
示例1
输入
1 2 3 4 5
输出
4
数据小,直接遍历
#include<iostream>
#include<algorithm>
using namespace std;
int gcd(int x, int y)
{
if(x < y)
swap(x, y);
return y == 0? x : gcd(y, x % y);
}
int lcm(int x, int y)
{
int z = gcd(x, y);
return x * y / z;
}
int main()
{
int *arr = new int(5);
for(int i = 0; i < 5; ++i)
cin >> arr[i];
int ans = 1e6 + 1;
for(int i = 0; i < 5; i++)
{
for(int j = i + 1; j < 5; j++)
{
for(int k = j + 1; k < 5; k++)
{
ans = min(ans, lcm(lcm(arr[i], arr[j]), arr[k]));
}
}
}
cout << ans << endl;
return 0;
}