import math def compute_sum_floor(M, n): if M == 0: return 0 sum_fl = 0 sqrt_m = int(math.isqrt(M)) # 处理k=1到sqrt_m的情况 for k in range(1, sqrt_m + 1): if k > n: break sum_fl += M // k # 处理v=1到sqrt_m的情况,k>sqrt_m的情况 for v in range(1, sqrt_m + 1): # 找到k的范围,使得 floor(M/k) = v low = (M // (v + 1)) + 1 high = M // v # 确保k > sqrt_m且<=n current_low = max(low, sqrt_m + 1) current_high = min(high, n) if current_low > current_high: continue count = current_high - current_low + 1 sum_fl += v * count return sum_fl H, W = map(int, input().split()) if H == 0 or W == 0: print(0) else: abs_W = abs(W) M = abs_W - 1 n = H sum_fl = compute_sum_floor(M, n) total = H + sum_fl print(total)