解き方は複数ありますが,実装が最も楽な解法を紹介します.

まず,B×kA\frac{B \times k}{A}の少数部分からなる数列XkX_kを考えます.

Xk=B×kAfloor(B×kA)X_k = \frac{B \times k}{A} - \mathrm{floor} (\frac{B \times k}{A})

このままでは扱いづらいので,XkX_kを扱いやすい形に変形すると,以下のように表せます.

Yk=(B×k)modAY_k = (B \times k) \mod A

Xk=YkAX_k = \frac{Y_k}{A}

YkY_kは明らかに周期性を持ちます.よって,XkX_kYkY_kと同じ周期を持ちます.周期は,B×kB \times klcm(A,B)\mathrm{lcm} (A, B)の倍数ときなので,Agcd(A,B)\frac{A}{\mathrm{gcd} (A, B)}です.したがって,XkX_kは,XAgcd(A,B)X_{\frac{A}{\mathrm{gcd} (A, B)}}まで求めれば十分です.

以上から,k=1NXk\sum_{k=1}^{N} X_kが以下の式で表されることがわかります.

k=1NXk=(floor(NAgcd(A,B))×k=1Agcd(A,B)Xk)+k=1NmodAgcd(A,B)Xk\sum_{k=1}^{N} X_k = (\mathrm{floor} (\frac{N}{\frac{A}{\mathrm{gcd} (A, B)}}) \times \sum_{k=1}^{\frac{A}{\mathrm{gcd} (A, B)}} X_k) + \sum_{k=1}^{N \mod \frac{A}{\mathrm{gcd} (A, B)}} X_k

=(floor(NAgcd(A,B))×k=1Agcd(A,B)Yk)+k=1NmodAgcd(A,B)YkA= \frac{(\mathrm{floor} (\frac{N}{\frac{A}{\mathrm{gcd} (A, B)}}) \times \sum_{k=1}^{\frac{A}{\mathrm{gcd} (A, B)}} Y_k) + \sum_{k=1}^{N \mod \frac{A}{\mathrm{gcd} (A, B)}} Y_k}{A}

したがって,最終的に求めるべき答えk=1Nfloor(B×kA)\sum_{k=1}^N \mathrm{floor} (\frac{B \times k}{A})

k=1Nfloor(B×kA)\sum_{k=1}^N \mathrm{floor} (\frac{B \times k}{A})

=k=1N(B×kAXk)= \sum_{k=1}^N (\frac{B \times k}{A} - X_k)

=k=1NB×kAk=1NXk= \sum_{k=1}^N \frac{B \times k}{A} - \sum_{k=1}^{N} X_k

=B×k=1Nk((floor(NAgcd(A,B))×k=1Agcd(A,B)Yk)+k=1NmodAgcd(A,B)Yk)A= \frac{B \times \sum_{k=1}^{N} k - ((\mathrm{floor} (\frac{N}{\frac{A}{\mathrm{gcd} (A, B)}}) \times \sum_{k=1}^{\frac{A}{\mathrm{gcd} (A, B)}} Y_k) + \sum_{k=1}^{N \mod \frac{A}{\mathrm{gcd} (A, B)}} Y_k)}{A}

k=1Nk=N×(N+1)2\sum_{k=1}^{N} k = \frac{N \times (N+1)}{2}なので,上記式を求めるのにかかる計算量は,O(Agcd(A,B))O(\frac{A}{\mathrm{gcd} (A, B)})となり,これはこの問題の実行時間制限に対して十分高速です.

式では複雑に見えますが,コードは以下のようになり,短くてわかりやすいです.