파이썬 이것저것/코테준비

[백준] 11653번: 소인수분해

agingcurve 2022. 8. 14. 15:46
반응형

 

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

 

11653번: 소인수분해

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

www.acmicpc.net

문제

정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.

 

입력

 

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

출력

N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.

풀이

a = int(input())
soinsu_list= []
soinsu =2
while a > 1:
  if a % soinsu !=0:
    soinsu += 1
  else:
    a = a / soinsu
    soinsu_list.append(soinsu)
for i in soinsu_list:
  print(i)

 

 

전부 나눠질 때까지 나누므로 

while 문을 사용하여 문제로 접근했다

소인수 리스트를 만들고

소인수로 해당 숫자를 나눠준뒤, 해당숫자를 리스트로 저장해준다.

안나눠 질 경우,  소인수를 1씩 올렸다.