해결한 사람
0
명
정답률
0.00
%
시간 제한
3000
ms
메모리 제한
245
MB
아주 평범한 어느 날, Valera는 학교에 갔다(평일에 달리 갈 곳도 없다). 수학 시간에 그가 가장 좋아하는 Evans 선생님은 학생들에게 약수에 관해 설명했다. Valera는 수학을 좋아했지만, 이 특정 주제는 흥미롭지 않았다. 게다가 너무 지루하게 느껴져 수업 도중에 잠들고 말았다. 그리고 요란한 학교 종소리가 울리고 나서야 그의 달콤한 꿈이 끝났다.
물론 중요한 수업 내용과 선생님의 설명은 놓치고 말았다. 하지만 Valera는 어떻게든 숙제를 해야 한다. 새로운 내용을 전혀 모르기 때문에 혼자서는 숙제를 할 수 없다. 그래서 여러분에게 도움을 요청했다. 어쨌든 여러분은 그의 가장 친한 친구이므로, 도와주기를 거절할 수는 없다.
Valera의 숙제에는 문제가 하나뿐이다. 문제는 매우 간단하게 서술되어 있지만, 그 해법은 간단하지 않다. 문제는 다음과 같다. 구간 [a;b]에 있는 모든 양의 정수를 고려할 때, 가장 작은 약수가 특정 정수 k인 수가 이 구간에 몇 개 있는지 세어야 한다(일과 같은 약수는 고려하지 않는다). 다시 말해, 구간 [a;b]에 있는 수 중 2와 k - 1 사이의 어떤 수로도 나누어떨어지지 않으면서 k로는 나누어떨어지는 수의 개수를 세어야 한다.
첫 번째이자 유일한 줄에 세 양의 정수 a, b, k (1 ≤ a ≤ b ≤ 2·109, 2 ≤ k ≤ 2·109)가 주어진다.
주어진 문제의 답을 한 줄에 출력한다.
12 23 3
2
1 10 2
5
6 19 5
0
문제의 예제에 대한 설명은 다음과 같다.
첫 번째 예제에서 답에 해당하는 수는 2, 4, 6, 8, 10이다.
두 번째 예제에서는 15, 21이다.
세 번째 예제에서는 그러한 수가 없다.