본문 바로가기
백준알고리즘/기본 수학2

(Python/🥈5)백준 알고리즘 11653번: 소인수분해

by windy7271 2022. 5. 17.
728x90
반응형

문제 출처:https://www.acmicpc.net/problem/11653

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

풀이:

N = int(input())
i = 2               # 제일 작은 나누는 수 선언
while N != 1:       # 입력받은 수 1이 아닐떄
    if N%i ==0:     # N 나누기 i 의 몫이 0 >> 즉 2의배수일때
        N /= i      # N은 2로 나누고 다시 N에 저장
        print(i)    # 2출력
    else:           # 2의 배수가 아니면
        i +=1       # 최소공배수를 +1
    if i>N:         # 쭉 진행하다가 최소공배수보다 바뀌는 N보다 클떄        
        break       # for문 탈출

 

다른 풀이:

n = int(input())
d = 2
while d*d <= n:
    if n % d == 0:
        print(d)
        n //= d
    else:
        d += 2 if d > 2 else 1
if n > 1:
    print(n)

출처: 백준알고리즘 rapaeljin 님 소스

반응형

댓글