[JAVA/프로그래머스] 유한소수 판별하기

윤소영·2024년 3월 18일
0

JAVA

목록 보기
33/41

문제


유한소수 판별하기



문제 답안

import java.util.*;
class Solution {
    public int solution(int a, int b) {
        int answer = 1;
        ArrayList<Integer> arr = new ArrayList<>();
        
        for(int i = 2; i < 1000; i++){
            if(a % i == 0 && b % i == 0){
                while(a % i == 0 && b % i == 0){
                    a /= i;
                    b /= i;
                }
            }
        }
        // System.out.println(a);
        // System.out.println(b);
        
        for(int i = 2; i < 1000; i++){
            if(b % i == 0){
                arr.add(i);
                // System.out.println(i);
                while(b % i == 0){
                    b /= i;
                }       
            }
        }
        
        for(int i = 0; i < arr.size(); i++){
            if(arr.get(i) != 2 && arr.get(i) != 5){
                answer = 2;
            }     
        }
        return answer;
    }
}



답안 풀이

  1. a와 b의 공약수로 나눠 기약분수 만들기
  2. b를 소인수 분해하고 소인수들을 arraylist에 넣기(저 if문은 지금 생각해보니까 빼도 된다)
  3. arraylist의 값이 2나 5가 아닌 다른 숫자가 들어가있으면 answer = 2

0개의 댓글