본문 바로가기
코딩 테스트/백준

백준 11653번 - 소인수분해

by pumkinni 2022. 8. 9.

백준 11653번 - 소인수분해


 

 

11653번: 소인수분해

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

www.acmicpc.net

 

틀린 코드(시간초과)

n = int(input())
def primary(n):
    primary = []
    for i in range(2, n+1):
        devide = [num for num in range(2,i) if i % num == 0]
        if len(devide) == 0:
            primary.append(i)
    return primary
for pri in primary(n):
    while 1:
        if n % pri == 0:
            print(pri)
            n /= pri
        else:
            break

 

코드

전에는 너무 어렵게 생각하였다. 그냥 2부터 나누어 지는 수가 있으면 출력하면 되는 것 이었다...
n = int(input())
i = 2
while n != 1:
    if n % i == 0:
        print(i)
        n /= i
    else:
        i += 1

 

결과

 

'코딩 테스트 > 백준' 카테고리의 다른 글

백준 4948번 - 베르트랑 공준  (0) 2022.08.10
백준 1929번 - 소수 구하기  (0) 2022.08.09
백준 2581번 - 소수  (0) 2022.08.09
백준 1978번 - 소수 찾기  (0) 2022.08.08
백준 10757번 - 큰 수 A+B  (0) 2022.08.08