본문 바로가기
공부/BOJ

[BOJ/Python] 11653번 소인수분해

by sshnnne 2022. 6. 30.

https://www.acmicpc.net/problem/11653

 

11653번: 소인수분해

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

www.acmicpc.net

 

n = int(input())
lst = []

for i in range(2,n+1):

    if (n % i == 0):

        lst.append(i)
        i = 2


print(lst)

 

그냥 약수 출력 프로그램이 되어버렸다.

 

n = int(input())
lst = []

for i in range(2,n+1):

    if (n % i == 0):

        lst.append(i)
        n = (n // i)
        

print(lst)

 

 

뭔가 비슷하게 나오긴 하는데 4가 나와서 제대로 소인수분해가 안 된 것 같음

나누어지면 리스트 append하고 i를 다시 2부터 시작하고 싶은데

n = (n//i) 다음에 i=2를 해도 초기화가 안 되는듯

 

 

n = int(input())
lst = []
i = 2

while (i!=n+1):

    if (n % i == 0):

        lst.append(i)
        n = (n // i)
        i = 2

    else:
        i+=1
        
        

for i in range(len(lst)):
    
    print(lst[i])

 

while 문을 썼더니 된다.

 

 

 

 

'공부 > BOJ' 카테고리의 다른 글

[BOJ/Python] 백준 17608번 막대기  (0) 2022.06.30
[BOJ/Python] 10773번 제로  (0) 2022.06.30
[BOJ/Python] 1543번 문서 검색  (0) 2022.06.30
[BOJ/Python] 5568번 카드 놓기  (0) 2022.06.30
[BOJ/Python] 1026번 보물  (0) 2022.06.30