Conclusion:

there will be at most O(Sqrt(N)) distinct values for floor(N/i).

Prove:

if i < sqrt(N) there will be at most sqrt(N) values

if i > sqrt(N) there will be at most sqrt(N) values (because floor(N/i) < sqrt(N))

sigma K mod i

= sigma K - floor(K / i) * i

= N * K - sigma floor(K / i) * i

we can calculate sigma floor(K / i) * i fastly for all i that floor(K / i) is the same.

Here is the code

```
for (long long i = 1; i <= min(n, k); i++){
long long t = k / i, r = min(k / t, n);
ans += k * (r - i + 1) - t * (i + r) * (r - i + 1) / 2ll;
i = r;
}
if (n > k) ans += k * (n - k);
```