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 |