잘못 구현한 에라토스테네스의 체

바깥 변수 i가 1부터 n까지 갈 때 안쪽 반복문이 i씩 건너뛰며 도는 코드에서 몸체가 실행되는 총 횟수를 n이 10^9까지일 때 구한다.

쉬움3수학정수론구현아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

성원이는 수업에서 에라토스테네스의 체를 배운 뒤 기억에 의존해 C++로 구현했다. 옆에 있던 형석이는 코드가 틀렸음을 지적했고 두 사람은 6번째 줄의 실행 횟수를 직접 세어 보기로 했다. 그 작업을 대신 받아 nn이 주어졌을 때 6번째 줄이 몇 번 실행되는지 구한다.

코드는 다음과 같다.

int n;
cin >> n; // read n
int* sieve = new int[n + 1];
for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j += i) {
        sieve[j] += 1; // 6번째 줄
    }
}

바깥 루프는 ii11부터 nn까지 돈다. 안쪽 루프는 jj11부터 시작해 ii씩 증가시키며 nn을 넘지 않는 동안 돈다. 6번째 줄은 안쪽 루프의 몸통이며 그 총 실행 횟수를 구하는 것이 과제이다.

입력

첫째 줄에 자연수 nn이 주어진다. 1n1091 \le n \le 10^9를 만족한다.

출력

첫째 줄에 6번째 줄이 실행되는 총 횟수를 출력한다.