首页 > 试题广场 >

最小众倍数

[编程题]最小众倍数
  • 热度指数:205 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定5个正整数, 它们的最小的众倍数是指的能够被其中至少三个数整除的最小正整数。 给定5个不同的正整数, 请计算输出它们的最小众倍数。

输入描述:
输入包括一行,一行中有五个各不相同的正整数a, b, c, d, e(1 ≤ a, b, c, d, e ≤ 100), 以空格分割


输出描述:
输出一个整数,表示它们的最小众倍数
示例1

输入

1 2 3 4 5

输出

4
#include <iostream>
using namespace std;
int main()
{
    int i,a[5];   
    for(i=0;i<5;i++)
    {
        cin>>a[i];   //假设按从小到大的顺序输入
    }
    int k,j,flag,result;
    for(k=a[2];;k++)     //被除数从a[2]开始递增
    {
        flag=0;
        for(j=0;j<5;j++)
        {
            if(k%a[j]==0) flag++;
            
        }
        if(flag>=3) 
        {
            result=k;    
            break;                 //至少3个数被整除,跳出循环;
        }
    }
    cout<<result<<endl;
    return 0;
    
}


发表于 2018-09-08 09:59:59 回复(0)
from functools import reduce


def calculate(li):
    for i in range(li[0], reduce(lambda x, y: x * y, li)):
        if len(list(x for x in map(lambda x: i % x == 0, li) if x)) >= 3:
            print(i)
            return


if __name__ == "__main__":
    li = list(map(int, input().split()))
    calculate(li)
发表于 2019-08-02 23:07:44 回复(0)