풀이
class Solution {
public int solution(int a, int b) {
int x=Math.max(a,b);
int y=Math.min(a,b);
while(x%y!=0){
int r=x%y;
x=y;
y=r;
}
b/=y;
while(true){
if(b%2==0){
b/=2;
}else if(b%5==0){
b/=5;
}else if(b==1) {
return 1;
}else{
return 2;
}
}
}
}
풀이방법
1) 유클리드 호재법으로 최대공약수 y를 구한다
2) 분모에 해당하는 b를 y로 나누어 기약분수의 형태로 만든다
3) 유한소수는 소인수를 2와5를 갖는다(2,5로 나누었을 때 0)