만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

함수의 합

시간 제한1초메모리 제한1024 MB

요약
s부터 e까지 각 정수 n의 가장 작은 소인수 f(n)을 구하고, 그중 가장 작은 k개의 값을 더한 합을 구합니다.
난이도

보통10점 중 6점

유형
정수론, 정렬
정답자
아직 제출이 없습니다

문제

모두가 Arup이 소수를 좋아한다는 것을 안다. 그래서 그는 UCF에서 암호학 강의를 맡고 있다. 최근 Arup은 1보다 큰 양의 정수 nn에 대해 다음 함수를 정의했다.

f(n)=n의 가장 작은 소인수f(n) = n\text{의 가장 작은 소인수}

예를 들어 f(14)=2f(14) = 2, f(15)=3f(15) = 3, f(16)=2f(16) = 2, f(17)=17f(17) = 17이다.

이 함수를 이용하면 f(s),f(s+1),f(s+2),…,f(e)f(s), f(s+1), f(s+2), \ldots, f(e)라는 수열을 만들 수 있다. 여기서 ss는 시작 입력값, ee는 끝 입력값이다.

Arup은 이런 수열이 흥미롭다고 생각하지만, 실제로 알고 싶은 것은 수열에서 가장 작은 kk개 원소의 합이다. 이 합을 구하는 프로그램을 작성하라.

ss, ee, kk가 주어지면 수열 f(s),f(s+1),f(s+2),…,f(e)f(s), f(s+1), f(s+2), \ldots, f(e)에서 가장 작은 kk개 값의 합을 구하라.

입력

첫 번째이자 유일한 입력 줄에 양의 정수 ss, ee, kk가 이 순서대로 주어진다. 이들은 다음 조건을 만족한다.

2≤s≤1018,s+100≤e≤s+106,1≤k≤0.9⋅(e−s+1).2 \le s \le 10^{18}, \quad s+100 \le e \le s+10^{6}, \quad 1 \le k \le 0.9 \cdot (e - s + 1).

출력

수열에서 가장 작은 k개k개 항의 합을 한 줄에 출력한다.

힌트

입력 조건상 s=14s=14, e=17e=17, k=3k=3인 경우는 허용되지 않으므로 채점 데이터에는 없다. 다만 답 77을 종이에서 쉽게 확인할 수 있는 간단한 경우이므로 테스트용으로 써 볼 만하다. 의도된 풀이는 이 경우도 올바르게 처리해야 한다.

예제2

  1. 예제 1

    입력
    100 200 70
    
    예상 출력
    165
    
  2. 예제 2

    입력
    213 419 169
    
    예상 출력
    546