1145번 - 적어도 대부분의 배수
import java.util.Arrays;
import java.util.Scanner;
public class No1145 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int[] set = new int[5];
int[] min = new int[10];
int mincount = 0;
for(int i = 0; i < 5; i++) {
set[i] = sc.nextInt();
}
for(int i = 0; i < 5; i ++) {
for(int j = 0; j < 5; j++) {
if(i < j) {
int big, small, tmp;
if(set[i] > set[j]) {
big = set[i];
small = set[j];
}else {
big = set[j];
small = set[i];
while(big%small != 0) {
tmp = small;
small = big%small;
big = tmp;
min[mincount] = (set[i]*set[j])/small;
mincount++;
int GCD = 1000000;
for(int i = 0; i < 10; i++) {
int count = 0;
if(min[i] % set[j] == 0) {
count++;
if(count >= 3) {
if(min[i] < GCD) {
GCD = min[i];
if(GCD == 1000000) {
Arrays.sort(set);
GCD = set[0] * set[1] * set[2];
System.out.print(GCD);
sc.close();
/////////// 최소공약수가 없을 경우
제일 작은 수들을 곱한 것으로 최소공배수하는 것 까지 처리했는데
틀렸다고 나옵니다 ㅠ ㅠ
댓글을 작성하려면 로그인해야 합니다.
lkm9709 3년 전
import java.util.Arrays;
import java.util.Scanner;
public class No1145 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int[] set = new int[5];
int[] min = new int[10];
int mincount = 0;
for(int i = 0; i < 5; i++) {
set[i] = sc.nextInt();
}
for(int i = 0; i < 5; i ++) {
for(int j = 0; j < 5; j++) {
if(i < j) {
int big, small, tmp;
if(set[i] > set[j]) {
big = set[i];
small = set[j];
}else {
big = set[j];
small = set[i];
}
while(big%small != 0) {
tmp = small;
small = big%small;
big = tmp;
}
min[mincount] = (set[i]*set[j])/small;
mincount++;
}
}
}
int GCD = 1000000;
for(int i = 0; i < 10; i++) {
int count = 0;
for(int j = 0; j < 5; j++) {
if(min[i] % set[j] == 0) {
count++;
}
}
if(count >= 3) {
if(min[i] < GCD) {
GCD = min[i];
}
}
}
if(GCD == 1000000) {
Arrays.sort(set);
GCD = set[0] * set[1] * set[2];
}
System.out.print(GCD);
sc.close();
}
}
/////////// 최소공약수가 없을 경우
제일 작은 수들을 곱한 것으로 최소공배수하는 것 까지 처리했는데
틀렸다고 나옵니다 ㅠ ㅠ