TopCoder SRM 150 DIV 1 Easy 練習

問題

ある自然数n(2 ≦ n ≦ 30)について、n進法で数を表記したとき、ある一桁の数kの倍数は全てその桁を合計するとkの倍数になるようなkを全て求めなさい。

たとえば10進法において、 159 * 3 = 477, 4+7+7 = 15 = 3 * 5 なので3が該当する。

全部やればいい。

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;

public class InterestingDigits {
    public int[] digits(int bs) {
        int to = (int)Math.Pow(bs, 3);
        int b2 = bs * bs;
        List<int> res = new List<int>();

        for (int i = 2; i < bs; ++i)
        {
            res.Add(i);
            for (int j = i; j < to; j += i)
            {
                if ((j / b2 + j % b2 / bs + j % bs) % i != 0)
                {
                    res.Remove(i);
                    break;
                }
            }
        }
        return res.ToArray();
    }
}