题目描述:
给定你五个正整数,它们最小众倍数是指能够被其中至少三个数整除的最小正整数。 给定你各不相同的整型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);
}
}