유한소수 판별하기 - Python

2023. 9. 30. 22:48공부/📝 프로그래머스

def solution(a, b):
    divisor = 2
    while divisor <= min(a, b):
        if a % divisor == 0 and b % divisor == 0:
            a //= divisor
            b //= divisor
            divisor = 2
        else:
            divisor += 1
    while b != 1:
        if b % 2 == 0:
            b //= 2
        elif b % 5 == 0:
            b //= 5
        else:
            return 2
    return 1


# Test Cases
print(solution(7, 20))
print("="*50)
print(solution(11, 22))
print("="*50)
print(solution(12, 21))
print("="*50)

  정직하게 풀었습니다.

 


from math import gcd
def solution(a, b):
    b //= gcd(a,b)
    while b%2==0:
        b//=2
    while b%5==0:
        b//=5
    return 1 if b==1 else 2

  math 라이브러리를 쓰면 이렇게 되네요.

 


 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

'공부 > 📝 프로그래머스' 카테고리의 다른 글

특이한 정렬 - Python  (0) 2023.10.01
문자열 밀기 - Python  (0) 2023.09.30
치킨 쿠폰 - Python  (0) 2023.09.30
등수 매기기 - Python  (0) 2023.09.30
로그인 성공? - Python  (0) 2023.09.30