반응형
코드
N = int(input())
a = 2
while N != 1:
for i in range(a,N+1):
if N % i == 0:
N //= i
print(i)
break
a = i
설명
가장 작은 소수는 2이기 때문에 a는 처음에 2로 둔다. 2로 더이상 나눠지지 않으면 다음 수로 넘어가게 된다. 이때 a 값을 가장 최근에 나눠진 수로 업데이트해서 for문을 돌릴 범위를 줄여줘서 시간을 단축했다.
반응형
'알고리즘 > 수학' 카테고리의 다른 글
[백준][Python] 1110번 더하기 사이클 (0) | 2022.03.18 |
---|---|
[백준][Python] 9613번 GCD 합 (0) | 2022.03.17 |
[백준][Python] 5347번 LCM (0) | 2022.03.16 |
[백준][Python] 2960번 에라토스테네스의 체 (0) | 2022.03.15 |
[백준][Python] 2581번 소수 (0) | 2022.03.03 |
댓글