728x90
반응형
https://www.acmicpc.net/problem/14232
문제
희대의 도둑 효빈이는 세계 최고의 보석가게 영선상에 잠입할 계획이다. 이 영선상은 최고의 보석가게답게 최고의 보안장치를 두고 있는데, 이 보안장치를 해제하지 않는다면 보석을 여러 개 훔쳐갈 시, 보석끼리 달라붙으며 무게가 모든 보석들의 곱으로 늘어난다.
효빈이는 이 보안장치를 해제할 수 없기 때문에, 차라리 곱해진 대로 최대한 많은 보석들을 가져오기로 계획했다. 효빈이는 한번에 k라는 무게를 들 수 있으므로, 딱 k만큼의 무게만큼의 보석을 가져오고 싶은데, 그 때 보석들의 최대 개수를 알고싶다.
영선상에는 세계 최고의 보석가게답게 모든 무게의 보석들이 매우 많이때문에, 훔쳐가는 보석이 부족할 일은 없다. 다만 모든 보석들은 무게가 1보다 크다.
효빈이는 이제 영선상에 잡입할 계획을 다 세웠다. 하지만 무슨 보석들을 훔쳐올지 결정하지 못하였는데, 효빈이를 대신하여 훔쳐올 보석들을 결정해주자.
입력
첫째 줄에는 효빈이가 들 수 있는 무게 k가 주어진다.(2≤k≤1012)
출력
첫째 줄에는 효빈이가 훔쳐올 보석의 개수를 출력하고, 다음 줄에는 훔쳐올 보석들의 무게를 오름차순으로 출력하시오.
풀이
Code
import sys
input = sys.stdin.readline
def solution(k) :
# 1. 출력 리스트 생성
answer = []
# 2.
for i in range(2, int(k**0.5)+1) :
# 2-1.
while k % i == 0 :
answer.append(i)
k //= i
# 3. 마지막 수가 소수인 경우 결과 리스트에 삽입
if k != 1 :
answer.append(k)
# 4. 결과 출력
print(len(answer))
print(*answer)
if __name__ == '__main__' :
k = int(input())
solution(k)
728x90
반응형
'Coding Test > Baekjoon' 카테고리의 다른 글
[Python/BOJ] 25603. 짱해커 이동식 (0) | 2023.09.22 |
---|---|
[Python/BOJ] 2660. 회장뽑기 (0) | 2023.09.21 |
[Python/BOJ] 6064. 카잉 달력 (0) | 2023.09.19 |
[Python/BOJ] 13565. 침투 (1) | 2023.09.18 |
[Python/BOJ] 3190. 뱀 (0) | 2023.09.11 |