Bamboo is coming

프로그래머스) 유한소수 판별하기 본문

PS

프로그래머스) 유한소수 판별하기

twenty 2023. 12. 13. 16:24
import math
def solution(a, b):
    if a==b: return 1
    c = b // math.gcd(a,b)

    while True:
        if c%2: break
        c = c//2
    while True:
        if c%5: break
        c = c//5

    return 1 if c==1 else 2

 

// 이거는 왜 틀리는걸까? 
import math
def solution(a, b):
    a_pf = []
    b_pf = []
    sqrtnum = min(math.sqrt(a),math.sqrt(b))
    aa, bb = a, b
    k = 2
    while k < max(a,b) or k < sqrtnum:
        if bb % k == 0 :
            b_pf.append(k)
            bb = bb // k
        if aa % k == 0: 
            a_pf.append(k)
            aa = aa // k    
        else:
            k+=1
            
    for i in a_pf[:]:
        print('a: {0}, b: {1}'.format(a_pf,b_pf))
        print(i)        
        if i in b_pf:
            a /= i
            b /= i
            a_pf.remove(i)
            b_pf.remove(i)
            print('a: {0}, b: {1}'.format(a,b))
    answer = 2

    if all(x in [2, 5] for x in b_pf):
        answer = 1
    return answer
Comments