示例#1
0
    //-----------------------------------------------------------------------
    static private void fillMults()
    {
        mults = new CMults(nMax * nMax);

        // Подсчет количества встреченных произведения для выбора уникальных
        for (long a = nMin; a <= nMax; ++a)
        {
            for (long b = a; b <= nMax; ++b)
            {
                mults.Inc(a * b);
            }
        }
    }
示例#2
0
    //-----------------------------------------------------------------------
    static private void fillMults2()
    {
        mults2 = new CMults((smMax + 1) * (smMax + 1) / 4); // макс произведение при a = b = smMax / 2

        // Для допустимых сумм ищем уникальные произведения
        for (long sm = nMin + nMin; sm <= smMax; ++sm)
        {
            if (sums[sm] == 0)
            {
                for (long a = nMin; a <= nMax && a <= sm - nMin; ++a)
                {
                    long b = sm - a;
                    if (b >= a && b <= nMax)
                    {
                        mults2.Inc(a * b);
                    }
                }
            }
        }
    }