두 개 이상의 연속된 자연수의 합으로 나타낼 수 없는 자연수를 '특이한 수'라 부르자.
예를 들어, 15 = 7 + 8, 12 = 3 + 4 + 5는 특이한 수가 아니다.

함수 S_k(m) = m + (m+1) + ... + (m+k-1) (k, m은 자연수, k > 1)을 생각하자. 에라토스테네스의 체 알고리즘에서 영감을 얻어 N개의 수 {1, 2, ... N}에 대해 S_2, S_3, ...에 해당되는 수를 차례대로 지워나간다.

1) 수 한 개를 지우는 과정을 한 번의 연산으로 칠 때 (중복 포함), 총 연산의 수를 f(N)이라 하자. f(N) = O(N ⋅ lnN)임을 보여라.
* Big O notation의 정의: 양의 실수 c, M이 존재하여 모든 실수 x ≥ c에 대해 0 ≤ f(x) ≤ M ⋅ g(x)이면, f(x) = O(g(x))라 쓴다.

2) 특이한 수의 필요충분조건을 찾고, 증명하여라.
즉, 특이한 수가 아니면 두 개 이상의 연속된 자연수의 합으로 나타낼 수 있는 방법을 찾고, 특이한 수라면 그럴 수 없음을 보여야 한다.

알고리즘 문제에 가까움

+ TMI
수 n이 지워지는 횟수를 h(n)이라 하자 (즉, 두 개 이상의 연속된 자연수의 합으로 표현 가능한 경우의 수). 1부터 10000까지 h(n)을 계산해보면 다음과 같다.

7cf5816fabd828a14e81d2b628f1756f0c4d6a07