n, k = list(map(int, input().split()))



if k == 0:

  print((n**2))

  exit()



ans  = 0



for b in range(1,n+1):



  # 連続部分

  if b - k > 0:

    ans += (n // b) * (b-k)

    

  # 繰り返し範囲外

  if ((n - (n // b)*b) - (k-1)) > 0:

    ans += ((n - (n // b)*b) - (k-1))





  

  

print(ans)
N,K = list(map(int, input().split()))



if K == 0:

    print((N*N))

    exit()





ans = 0

for b in range(K+1,N+1):

    # N = b * num + rest

    num = N // b 

    rest = N - (b*num)

    # b一周期の中に、余りがK以上になる数字が(b-K)個、残りの中でさらに余りがKを超える物があればそれも加算

    ans += (b - K) * num + max(0, rest-K+1) 





print(ans)
n, k = list(map(int, input().split()))
if k == 0:
    print((n**2))
    exit()
ans = 0
for b in range(1, n + 1):
    # 連続部分
    if b - k > 0:
        ans += (n // b) * (b - k)
    # 繰り返し範囲外
    if ((n - (n // b) * b) - (k - 1)) > 0:
        ans += (n - (n // b) * b) - (k - 1)
print(ans)

N, K = list(map(int, input().split()))
if K == 0:
    print((N * N))
    exit()
ans = 0
for b in range(K + 1, N + 1):
    # N = b * num + rest
    num = N // b
    rest = N - (b * num)
    # b一周期の中に、余りがK以上になる数字が(b-K)個、残りの中でさらに余りがKを超える物があればそれも加算
    ans += (b - K) * num + max(0, rest - K + 1)
print(ans)

-n, k = list(map(int, input().split())) -if k == 0: -    print((n**2)) +N, K = list(map(int, input().split())) +if K == 0: +    print((N * N)) -for b in range(1, n + 1): -    # 連続部分 -    if b - k > 0: -        ans += (n // b) * (b - k) -    # 繰り返し範囲外 -    if ((n - (n // b) * b) - (k - 1)) > 0: -        ans += (n - (n // b) * b) - (k - 1) +for b in range(K + 1, N + 1): +    # N = b * num + rest +    num = N // b +    rest = N - (b * num) +    # b一周期の中に、余りがK以上になる数字が(b-K)個、残りの中でさらに余りがKを超える物があればそれも加算 +    ans += (b - K) * num + max(0, rest - K + 1)