그렇다면 이 문제는 어때?




소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다.


분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다.유한소수가 되기 위한 분수의 조건은 다음과 같습니다.


기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다.


두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요.



<제한사항>


a, b는 정수


0 < a ≤ 1,000


0 < b ≤ 1,000



<입출력 예>


a b result


7 20 1

11 22 1

12 21 2




class Solution {


    public int solution(int a, int b) {


        int answer = 2;

        int max = 1;


        for( int i=2; i<=a; i++ ) {


            if( a%i==0 && b%i==0 )

    max = i;

            

        }


        b /= max;


        for( int i=0; i<b; i++ ) {


            if( b%2==0 )

    b/=2;


            if( b%5==0 )

    b/=5;


        }


        if( b==1 )

            answer = 1;


        return answer;


    }


}




마지막 for문에서 문제가 생겼지만


50개의 테스트에서 무려 47개를 통과했지


수많은 사람들이 가져온 반례들을 모두 통과한 코드야


과연 저 for문은 무엇이 잘못되었을까?


비효율적이긴 하지만 잘못된 것 같지는 않은데