Java/Coding Test

유한소수 판별하기 문제풀이

최고다최코딩 2023. 9. 17. 21:57
728x90

유한소수인지 판별하여 맞으면 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를 나누었을때 나누어 떨어져야 한다.