유한소수인지 판별하여 맞으면 1 틀리면 2 반환
유한소수이기 위한 조건 : 기약분수일 때 분모의 소인수는 2, 5만 존재해야한다.
public int solution(int a, int b) {
int answer = 0;
while(b%2==0||b%5==0){
if(b%2==0){
b/=2;
}
if(b%5==0){
b/=5;
}
}
return (a%b==0)? 1:2;
}
b(분모)가 기약분수일 때 2와 5만 남는다는 건 a(분자)의 소인수 중 분모의 소인수와 겹치는 수가 약분되고 남는 수가 2와 5
> b에서 2와 5로 나누어떨어질때까지 계속 나누고 남은 수는 A를 나누었을때 나누어 떨어져야 한다.
'Java > Coding Test' 카테고리의 다른 글
소인수분해 문제풀이 (0) | 2023.09.18 |
---|---|
치킨 쿠폰 문제풀이 (0) | 2023.09.17 |
저주의 숫자 3 문제풀이 (0) | 2023.09.17 |
문자열 밀기 문제풀이 (0) | 2023.09.17 |
다항식 더하기 문제풀이 (0) | 2023.09.17 |