문제

유한소수 판별하기
문제 답안
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;
}
}
}
for(int i = 2; i < 1000; i++){
if(b % i == 0){
arr.add(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;
}
}
답안 풀이
- a와 b의 공약수로 나눠 기약분수 만들기
- b를 소인수 분해하고 소인수들을 arraylist에 넣기(저 if문은 지금 생각해보니까 빼도 된다)
- arraylist의 값이 2나 5가 아닌 다른 숫자가 들어가있으면 answer = 2