Python/문제

유한소수 판별하기

시바도지 2023. 3. 29. 14:10
반응형

링크: https://school.programmers.co.kr/learn/courses/30/lessons/120878

 

프로그래머스

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

programmers.co.kr

 

풀이:

# 분자 : molecule
# 분모 : denominator
# 최대 공약수 : gcd(greatest common divisor)
def solution(a, b):
    den = b # 분모 원래 값을 저장
    while b: # b가 0이 될때 까지 나눠서 최대 공약수를 구한다. (유클리드 호제법 참고)
        a, b = b, a % b
    den = den // a # a = 최대 공약수
    while den % 2 == 0:
        den = den // 2
    while den % 5 == 0:
        den = den // 5
    return 1 if den == 1 else 2

 

유클리드 호제법: https://velog.io/@yerin4847/W1-%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C-%ED%98%B8%EC%A0%9C%EB%B2%95

 

 

반응형

'Python > 문제' 카테고리의 다른 글

옹알이 (1)  (0) 2023.03.30
평행  (0) 2023.03.29
겹치는 선분의 길이  (0) 2023.03.29