No.528

の桁数を とする.

まずは 桁の回文数の数を考える.

そこで 以下の最大の回文数を求める.

上から 桁目と下から 桁目を比較して, 下から 桁目の方が大きければそのまま下から 桁目を上から 桁目の数字にする.

下から 桁目の方が小さければ下から 桁目を9にしてその上の桁を1繰り下げる. 繰り下げた結果上から 桁目より上の桁に影響が出たならその影響が出た桁から再度行う. そうでない場合は 桁目から再度行う.

これを 桁目まで行う.

これで 以下の最大の回文数が求まる.

の上位 桁が決まれば回文数が一意に決まるので, 桁の回文数は, の上位 桁の数を とすると, 個になる.

なお, の場合は 桁の回文数はない.

桁 () の回文数は上位 桁が決まればいいので, 個である.

で割った余りは計算式に が出てるので, のときにこの値を として計算すればいい.

で割った余りは, で割った余りをあらかじめ計算しておけばいい.