A%B=AA/B×BA \% B = A - \lfloor A / B \rfloor \times B であることを利用すると

S=k=1N(XX/k×k)S = \sum^{N}_{k=1}(X - \lfloor X / k \rfloor \times k)

    =XNk=1N(X/k×k)\; \; \,\, = XN - \sum^{N}_{k=1}(\lfloor X / k \rfloor \times k)

    =XNi=1Xi×(N以下かつXを割った時の商がiである自然数の和)\; \; \,\, = XN - \sum^{X }_{i=1}i \times (N以下かつXを割った時の商がiである自然数の和)

となります.

また, XX を自然数で割った時の商は高々 2X+12 \sqrt X + 1 種類です.

証明:

11 以上 X\sqrt X 以下の自然数で XX を割ったときの商はX\sqrt X 種類, X\sqrt X より大きい自然数で割った時の商は0以上 X\sqrt X 未満であり高々X+1 \sqrt X + 1 種類で, 合わせて 2X+12 \sqrt X + 1 種類以下になります.

よって, 商としてあり得る数に対して上記の式を計算すると O(X) O(\sqrt X) (または, O(min(X,N)) O(min(\sqrt X, N)))で解くことができます.