프로그래머스 - LV.0 - 유한소수 판별하기

박종일·2023년 10월 9일
0

프로그래머스 LV.0

목록 보기
43/46


나의 풀이

import math

def solution(a, b):
    gcd = math.gcd(a, b) # 분모, 분자의 최대공약수를 구해 b를 최대공약수로 나눔
    b //= gcd
    
    num = [] # 소인수 저장
    i = 2
    while i <= b: # 소인수 구하기
        if b % i == 0:
            b //= i
            num.append(i)
        else:
            i += 1
    
    if all(i in [2,5] for i in num): # 소인수가 2와 5만 존재하면 유한소수 그렇징 않으면 무한소수
        return 1
    return 2

다른 풀이

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 안에 gcd 가 있는지 몰랐다...
경험도 중요하다고 생각!!

profile
존경하는 인물: 스토브리그 백승수 단장(남궁민)

0개의 댓글