본문 바로가기

프로그래머스/lv0

유한소수 판별하기

/* 유한소수 판별하기
 * 소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다.
 * 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다.
 *
 * 유한소수가 되기 위한 분수의 조건은 다음과 같습니다.
 * 기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다.
 * 두 정수 a와 b가 매개변수로 주어질 때,
 * a/b가 유한소수이면 1을, 무한소수라면 2를 return
 *
 * a    b   result
 * 7    20  1       분모 20의 소인수가 2, 5이기 때문에 유한소수
 * 11   22  1       분모 2는 소인수가 2 뿐이기 때문에 유한소수
 * 12   21  2       분모 7은 소인수가 7 이므로 무한소수
 */
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.*;
public class programmer_0_89 {
    static int a1 = 1;  static int b1 = 30;
    static int a2 = 11static int b2 = 22;
    static int a3 = 12static int b3 = 21;
    
    public int solution(int a, int b) {
        int answer = 1;
        if(a == 0 || b == 0return answer;
 
        int min = a > b ? b : a;
        int val = 0;
        for(int i = 1; i <= min; i++){  //최대공약수
            if(a % i == 0 && b % i == 0){
                val = i;
            }
        }
        b = b / val;    //기약분수
        List<Integer> ar = new ArrayList<>();
        for(int i = 2; i <= b; i++){
            if(b % i == 0)  ar.add(i);
        }
        for(int k : ar) System.out.print(k + ",");
        System.out.println("");
        for(int i : ar){
            System.out.println(i + " / " + (i%2+ " / " + (i%5+ " / " + (i % 2 != 0 && i % 5 != 0));
            if(i % 2 != 0 && i % 5 != 0)    answer = 2;
        }
        return answer;
    }
    public static void main(String args[]){
        programmer_0_89 t = new programmer_0_89();
        System.out.println("---------------------------------------");
        System.out.println("result = " + t.solution(a1,b1));
        System.out.println("---------------------------------------");
        // System.out.println("result2 = " + t.solution(a2,b2));
        // System.out.println("---------------------------------------");
    }
}
cs

'프로그래머스 > lv0' 카테고리의 다른 글

저주의 숫자 3  (0) 2022.12.07
특이한 정렬  (2) 2022.12.07
직사각형의 넓이  (1) 2022.12.07
컨트롤 제트  (0) 2022.12.07
삼각형의 완성조건 (2)  (1) 2022.12.07