よってこの場合は一般化した式がそのまま使えます。残りの「N=1かつMが3以上」と「Nが3以上かつM=1」の場合ですが、これはそのまま一般化した式で計算すると値が負になるのですが、符号を反転させればそれが正解になります。絶対値を返すことで結果が得られます。実装ほぼワンライナーのようなコードになりました。以上になるN以下のa、bの組み合わせを数える問題です。Kが0の場合はN^2が解となるので、以降はKが1以上の場合で考えます。bで割った余りなので、まずはbを固定して考えます。bの取りうる範囲はK+1〜Nです。次のような数列になります。bよって、このうちK以上のものの数を数えればよいです。これを定数時間で求めることが出来れば、K+1〜Nのbに対してそれぞれ計算して合計をとれば答えになり十分間に合います。それでは、bを固定した場合のaの数え方について続いて考えます。(長さb)の繰り返しに着目します。