IT/Programming / / 2022. 7. 9. 12:24

[백준, Python] 11653번 소인수분해

반응형
시간 제한메모리 제한제출정답맞힌 사람정답 비율
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
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유