728x90
https://www.acmicpc.net/problem/16563
소인수 분해는 $O(\sqrt N)$의 시간 복잡도로 $\sqrt N$까지 반복문을 돌아 자연수를 나누는 방법이 가장 잘 알려져 있다.
하지만 이 문제는 소인수 분해를 해야 할 수의 개수가 $N \leq 10^{6}$이므로 이 방법을 사용하면 TLE 판정을 받게 된다.
Linear sieve를 이용하여 소인수 분해를 $O(\log N)$에 할 수 있는 방법이 있다.
Linear sieve를 사용하여 소수 목록을 $O(N)$에 구한 후 소인수 분해를 실시하면 1초 이하의 시간으로 AC를 받을 수 있다.
Linear sieve를 알지 못한다면 이 글을 참조하여 사용하면 된다.
728x90
'백준 > 수학' 카테고리의 다른 글
백준 16878 - 궁전 (0) | 2022.05.04 |
---|---|
백준 1402 - 아무래도이문제는A번난이도인것같다 (0) | 2022.04.05 |
백준 10728 - XOR삼형제 1 (0) | 2021.07.27 |
백준 10736 - XOR삼형제 2 (0) | 2021.07.27 |
백준 4375 - 1 (0) | 2021.07.08 |