class Solution {
public int solution(int a, int b) {
int answer = 0;
int gcd = gcd(a, b); // a와 b의 최대공약수를 구합니다.
int denominator = b / gcd; // 분모를 최대공약수로 나눈 값을 저장합니다.
// 2와 5로 계속 나누어 나가면서 2와 5 이외의 소인수가 있는지 확인합니다.
while (denominator % 2 == 0) denominator /= 2;
while (denominator % 5 == 0) denominator /= 5;
// 2와 5로만 이루어져 있으면 유한소수입니다.
if (denominator == 1) answer = 1;
// 그렇지 않으면 무한소수입니다.
else answer = 2;
return answer;
}
// 최대공약수를 구하는 함수입니다. (재귀함수로 구현)
private int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
}