首页 > 试题广场 >

最小众倍数

[编程题]最小众倍数
  • 热度指数:526 时间限制: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
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int [] a=new int[5];
        for(int i=0;i<=4;i++){
            a[i]=sc.nextInt();
        }
        Arrays.sort(a);//题目没说这四个的大小关系,从小到大排序
        for(int i=a[2];;i++){//从第三个开始,依次增大。
            int flag=0;
            for(int j=0;j<5;j++)//判断这几个数中能有几个被整除的数
            {
                if(i%a[j]==0)//能够整除
                {
                    flag++;
                }
            }
            if(flag >= 3)//个数达到了,输出结果。结束循环
            {
                System.out.println(i);
                break;
            }
        }
    }


}


编辑于 2018-08-10 23:40:06 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[5];
        Scanner input = new Scanner(System.in);
        for(int i=0;i<5;i++) {
            arr[i] = input.nextInt();
        }
        int count = 0;
        int result = 0;
        Arrays.sort(arr);//将数组排序
        for(int i = arr[2];;i++) {//最小的最小众倍数肯定是大于或等于arr[2]
            count = 0;
            for(int j=0;j<5;j++) {
                if(i%arr[j]==0) {
                    count++;//每满足一次条件加1
                }                 }
            if(count >= 3) {//如果count>=3 则满足题目条件
             result = i;
             break;
             }
    }
         System.out.println(result);
    }
} 

发表于 2018-08-10 01:37:49 回复(0)