방법 1
백준 1644
설명
소수를 미리 구해놔야해서 에라토스테네스의 체를 사용한다.
그리고 투 포인터를 이용해 연속합을 구한다. 주의할 점은 누적합을 구하는 것이므로 두 포인터가 양 끝이 아니라 한쪽에서 시작한다는 것 이다.
시간 복잡도
O(N)
코드
방법 2
설명
이중 for
문으로 구현할 수도 있음.
- 일정이상 수가 커지면
break
하는 방식으로 하면 됨
- 두 포인터 보다 중복되는 계산이 조금 더 섞여있지만 엄청 느려지진 않음.
- 중복해서 계산할게
n/2, n/3, n/4 ... n/n
이런 배열을 따를 것이기 때문.
- =NLogN
- 대신 이때는 소수만 모아놓은 배열을 따로 빼서 \(N\) 을 줄여줘야함.
시간복잡도
O(\(Nlog{N}\))
코드
댓글남기기