最小众倍数

题目描述:

给定你五个正整数,它们最小众倍数是指能够被其中至少三个数整除的最小正整数。 给定你各不相同的整型a, b, c,  d以及e。请返回它们的最小众倍数。

输入:

输入五个正整数a,b,c,d,e。   a, b, c, d以及e中每个的取值范围都在1和100之间(其中包括1和100)。
a, b, c, d以及e各不相同。 

输出:

返回它们的最小众倍数 

举例:

a =  1 b = 2   c = 3   d = 4   e = 5, 返回4。4能够被1,2以及4整除,满足五个数中至少能被其中三个整除的定义。
 

思路

设置一个  i  值,值从1开始,逐渐递增。count = 0,表示计数。

若 i % a == 0,  count ++;

i % b == 0,  count ++;...... i % e == 0,  count ++。

当count >= 3,时,满足最小众倍数条件。若count值小于3 ,则将 count 值 恢复到0

/**
 * Main_dianxing
 */
public class Main_dianxing 
{

    public static void main(String[] args) 
    {
        System.out.println(leastMajorityMultiple(1,2,3,4,5));
    }
    public static int leastMajorityMultiple(int a, int b, int c, int d, int e) 
    {
        int i = 1;
        int count = 0;//能整除的次数
        while(i > 0)
        {
            if(i % a == 0) count++;
            if(i % b == 0) count++;
            if(i % c == 0) count++;
            if(i % d == 0) count++;
            if(i % e == 0) count++;
            if(count >= 3)
            {
                break;
            }
            count = 0;//若count值小于3,恢复到0
            i++;//不满足条件,i++
        }
        return i;
    }
}

用for循环

import java.util.Scanner;
public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int d = sc.nextInt();
        int e = sc.nextInt();
        int count = 0;
        int result=1;
        for(result=1; result<Integer.MAX_VALUE; result++)
        {
            if(result % a == 0) count++;
            if(result % b == 0) count++;
            if(result % c == 0) count++;
            if(result % d == 0) count++;
            if(result % e == 0) count++;
            if(count >= 3)
                break;
            else
                count = 0;//count值小于3,count值置为0
        }
        System.out.println(result);
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值