PYTHON
파이썬과 친해지길 바라, 백준 11653번, 소인수분해 [PYTHON]
정설아05
2023. 7. 28. 17:51
문제
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
출력
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
N = int(input())
M = 2
while N != 1:
if N % M == 0 :
print (M)
N = N // M
else : M += 1
살짝 어려운데, 소인수 분해의 원리를 잘 생각해 보면 풀린다.
정수 N의 값을 입력 받는다.
M 은 소인수분해 해줄 수를 잡는다.
제시된 사항 처럼 1이 아닐때만 코드가 실행된다.
나머지를 구하는 mod 연산자를 이용하여
N % M을 하였을 때 나머지가 0인 수를 가지는 M이라면, 소인수분해가 가능한 수라고 판단, print 해준다.
그리고 해당 수로 N // M 을 통하여 N 값을 새로 잡고 반복하면 자동으로 소인수분해되는 프로그램이 된다.