반응형
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 256 MB | 62848 | 33620 | 26219 | 52.209% |
문제
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
출력
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
더보기
# 입력값 처리
def chkInput(userInput):
# 입력값 체크
if not (1 <= userInput <= 10000000):
raise Exception('범위가 잘못 됐습니다.')
# 결과값 계산
def calOutput(inputFirst):
# 나뉠 최대 값
maxRange = inputFirst
# 결과값 저장
targetList = []
#초기 값
target = 2
# 더이상 나눠지지 않을 때 까지
while maxRange != 1:
# 나머지 0 일경우에만 나눔
if maxRange % target == 0:
# 최대값이 나눈수로 바뀐다.
maxRange = maxRange / target
targetList.append(target)
# 다시 처음부터 시작
target = 2
else:
target += 1
return targetList
try:
userInput = int(input())
chkInput(userInput)
targetList = calOutput(userInput)
for printTarget in targetList:
print(printTarget)
except Exception as e:
print(e)
반응형
'IT > Programming' 카테고리의 다른 글
[백준, Python] 10039번 평균 점수 (0) | 2022.07.11 |
---|---|
[백준, Python] 2753번 윤년 (0) | 2022.07.11 |
[백준, Python] 10817번 세 수 (0) | 2022.07.09 |
[백준, Python] 9498번 시험 성적 (0) | 2022.07.09 |
[백준, Python] 2935번 소음 (0) | 2022.07.09 |