[알고리즘] 백준 - 11653 소인수분해

2022. 1. 17. 17:19·🎲 알고리즘 공부/백준

문제

https://www.acmicpc.net/problem/11653

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

 

설명

 소인수 분해는 하나의 수를 소수의 곱으로 나타낸 것입니다. 예를 들면, 예제처럼 72는 2*2*2*3*3 으로 나타낼 수 있습니다. 이와 같이 2가 여러 번 나올 수 있으므로 2로 나누어질때까지 나누고, 그 후에 다른 소수로 넘어가는 방법을 채택해야 하는 게 좋습니다.

 

코드

import sys

n = int(sys.stdin.readline())

while n != 1:
    for i in range(2,n+1):
        if n % i == 0:
            print(i)
            n = n // i
            break;

 설명해보자면, 

1. n을 입력받습니다.

2. n이 1이 될 때 까지 while문을 돌립니다. (나누기가 다 끝나면 n이 1이 되기 때문) 

3. for문을 2부터 n까지 돌립니다. (range(2,n+1)인 이유는 n+1까지 범위를 지정해두어야 n일때도 실행이 되기 때문)

4-1. n이 i로 나눠지는지 비교 후, n이 i로 나눠지면 i를 출력합니다.

 4-2. n에는 n 나누기 i의 몫을 넣고 for문을 종료합니다. (break) 

 4-3. n이 1인지 체크 후 다시 2번으로 돌아가서 위의 과정을 반복합니다.

 

끝~

'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글

[백준] 2739번 - 구구단 (파이썬)  (0) 2022.05.19
[백준] 2525번 - 오븐 시계 (파이썬)  (0) 2022.05.18
[백준] 2884번 - 알람 시계 (파이썬)  (0) 2022.05.17
[백준] 2480번 - 주사위 세개 (파이썬)  (0) 2022.05.16
[백준] 14681번 - 사분면 고르기 (파이썬)  (0) 2022.05.15
'🎲 알고리즘 공부/백준' 카테고리의 다른 글
  • [백준] 2525번 - 오븐 시계 (파이썬)
  • [백준] 2884번 - 알람 시계 (파이썬)
  • [백준] 2480번 - 주사위 세개 (파이썬)
  • [백준] 14681번 - 사분면 고르기 (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (267)
      • 📑 신입일기 (35)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 📘 독서 (0)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    백준
    정보처리기사
    일기
    코린이
    충무로
    행렬덧셈
    컨텐더스
    프로그래머스
    코민이
    스프링부트
    폰켓몬
    50문답
    codeup
    찬양추천
    연습문제
    티스토리챌린지
    6월 목표
    오버워치
    코드업
    오블완
    til
    피보나치수
    신입일기
    코테
    정처기
    카카오
    nodejs
    BOJ
    스프링 부트
    파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[알고리즘] 백준 - 11653 소인수분해
상단으로

티스토리툴바