BOJ 11653 소인수분해

LONGNEW·2021년 1월 24일
0

BOJ

목록 보기
100/333

https://www.acmicpc.net/problem/11653
시간 1초, 메모리 256MB
input :

  • N (1 ≤ N ≤ 10,000,000)

output :

-한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력


소인수 분해라 해서 꼭 소수를 구해서 하지 않아도 된다...

while 문으로 n 이 1이 되기 까지 계산을 해줄 것이고.
i 가 2부터 시작해서
n을 i로 나눈 나머지가 0이면 계속 해서 소인수 분해 해주고,
0이 아니면 i의 값을 늘린다.

import sys

n = int(sys.stdin.readline())
i = 2
while n != 1:
    if n % i == 0:
        print(i)
        n //= i
    else:
        i += 1

처음 풀 때 i를 돌리려는 생각으로 조건을 짜다가
while n != 2: 로 제출 해버리는 바람에 시간 초과 되었다...

0개의 댓글