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인 경우 아무것도 출력하지 않는다.
예제 입력 1 복사
72
예제 출력 1 복사
2
2
2
3
3
예제 입력 2 복사
3
예제 출력 2 복사
3
예제 입력 3 복사
6
예제 출력 3 복사
2
3
예제 입력 4 복사
2
예제 출력 4 복사
2
예제 입력 5 복사
9991
예제 출력 5 복사
97
103
n = int(input())
x = 2
while x <= n:
if n % x == 0:
print(x)
n /= x
else:
x += 1
소수는 2부터 시작하기 때문에 처음 x를 2로 두고 만약 n이 x로 나누어진다면 그때 x를 출력하고 n은 그 몫으로 바꾸고 나누어지지 않는다면 x에 1을 더하는 방식으로 구현했다
'Algorithm > 알고리즘 문제' 카테고리의 다른 글
[백준/BOJ][Python] 1676번 팩토리얼 0의 개수 (0) | 2022.08.09 |
---|---|
[백준/BOJ][Python] 2563번 색종이 (0) | 2022.08.09 |
[백준/BOJ][Python] 19637번 IF문 대신 써줘 (0) | 2022.08.07 |
[백준/BOJ][Python] 10989번 수 정렬하기 3 (0) | 2022.08.05 |
[백준/BOJ][Python] 2108번 통계학 (0) | 2022.08.04 |