728x90
11653번: 소인수분해
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
www.acmicpc.net
풀이
첫째 줄에 정수 num을 입력하고
소인수분해를 한 결과가 한 줄씩 오름차순으로 나오면 된다
이제 보니 오름차순이 중요하군
num = int(input())
이 num을 소인수분해하려면, 2부터 1씩 더해 나눠지는지 확인하면 된다.
num이 어떤 수로 나눴을 때 0이 나오는지 보고, 나오지 않으면 어떤 수 +1 을 해서 0이 나올 때까지 돌린다.
num을 12로 예시를 들어보자.
12 % 2 == 0:
12 =/ 2
6 =/ 2
3
2
2
3
이렇게 출력되면 된다.
소인수분해는 더 이상 나눠지지 않을 때까지 나누고 그 나눠진 몫과 마지막 나머지를 보여주는 거라서
이렇게 쓰면 되는 것 같다. (난 수포자가 아니었는데... 수학이 날 포기했던 것인가 ^_ㅜ)
코드
num = int(input())
i = 2
while num > 1:
if num % i == 0:
num = num // i #이해 안됨
print(i)
else:
i += 1
728x90
'🥧 Python > ⚙️ 코딩테스트' 카테고리의 다른 글
[백준-Python] 2753번: 윤년 (0) | 2023.02.15 |
---|---|
[백준-Python] 1789번: 수들의 합 (0) | 2023.02.15 |
[백준-Python] 9498번: 시험 성적 (0) | 2023.02.15 |
[백준-Python] 2935번: 소음 (0) | 2023.02.15 |
[백준-Python] 2675번: 문자열 반복 (0) | 2023.02.15 |