// 通过了,这道题int型太小无法覆盖用例,用for循环易超时  
// 找规律发现了为:等差数列前N项和的问题 
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        Long begin = scanner.nextLong();
        Long end = scanner.nextLong();
        Long interval = scanner.nextLong();
        // 转成 0 - > 某个数 方便计算
        end = end - begin;
        begin = 0L;
        // 计算间隔个数
        Long count = end/interval;
        // 找规律发现的 最小 最大 起始项
        // 例如 0-9  间隔2   此时个数count= end/interval = 9/2=4 
        // 起始:9-4*2+1=2  终止 9-2+1=8
        // 此时相当于求等差数列 2 4 6 8  个数4  计算result总和
        // 为什么是这样的:本例间隔为2的倍数-> 
        // 间隔2的有 [0,2][1,3]...[7,9]    9-2*1+1=8个
        // 间隔4的有 [0,4][1,5]...[5,9]    9-2*2+1=6个
        // 间隔6的有 [0,6][1,7][2,8][7,9]  9-2*3+1=4个
        // 间隔8的有 [0,8] [1,9]           9-2*4+1=2个
        // 间隔超过8的不存在了,此时刚好有count = end/interval = 9/2 = 4项,已计算起始项:2 终止项:8 
        // 求2->8 间隔2的等差数列  其他的情况也是一样
        Long sumStart = end - count*interval + 1;
        Long sumStop = end - interval + 1;
        // 等差数列前n项和
        Long result = (sumStart+sumStop)*count/2;
        System.out.println(result);
    }
}