核桃的数量
题目描述:
小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:
各组的核桃数量必须相同
各组内必须能平分核桃(当然是不能打碎的)
尽量提供满足1,2条件的最小数量(节约闹革命嘛)
输入格式:
输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)
输出格式:
输出一个正整数,表示每袋核桃的数量。
输入样例1:
2 4 5
输出样例1:
20
输入样例2:
3 1 1
输出样例2:
3
思路:
这道题没什么深奥的理解,只需要求出三个数的最大公约数就可以了,我这里直接采用的暴力遍历。
下面附上代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
import javax.print.attribute.Size2DSyntax;
import javax.security.auth.x500.X500Principal;
import javax.swing.text.Highlighter;
import org.omg.PortableServer.ID_ASSIGNMENT_POLICY_ID;
public class Main{
public static void main(String args[]) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s[]=br.readLine().split("\\s+");
int n=Integer.parseInt(s[0]);
int m=Integer.parseInt(s[1]);
int p=Integer.parseInt(s[2]);
int t=Math.max(n, m);
t=Math.max(t, p);
for (int i = t; i <= m*n*p; i++) {
if(i%m==0&&i%n==0&&i%p==0)
{
System.out.println(i);
break;
}
}
}
}