프로그래머스 | 소인수분해 [파이썬

프로그램 제작자

코드 중심 개발자를 고용하십시오. 배치 기반 위치 매칭. 프로그래머의 개발자별 프로필에 가입하고 기술 호환성이 좋은 회사와 연결하십시오.

Programmer.co.kr

암호

def solution(n):
    answer = ()
    
    x = 2
    while x <= n:
        if n % x == 0:
            if x not in answer:
                answer.append(x)
            n //= x
        else:
            x += 1
    return answer

지정된 번호 n 채권 차압 통고하기 나름이다

그러나 여기에서 12가 소인수분해될 때 $2 \times 2 \times 3$는 답에 있어야 하지만 (2, 3)만 있어야 합니다. 다음과 같은 중복 번호 나. 2, 하나만 표시할 수 있습니다.

소인수 분해는 1이 아닌 2에서 시작합니다. 엑스 = 2그것을 초기화

x가 n보다 작으면 소인수를 찾기 위해 계속 반복합니다.

만약에 x가 n의 소인수이면 응답에 x가 있는지 여부 확인 답변. 추가(x)n의 값을 n을 x로 나눈 몫으로 변경합니다.

응답에 이미 있는 경우 중복 저장을 방지하기 위해 추가를 건너뜁니다. 엔 // 엑스 그냥 계속

n이 더 이상 x로 나누어지지 않을 때 엑스 + 1을 통해 다음 소인수검색 과정을 반복