Beispiel #1
0
    //-----------------------------------------------------------------------
    static private void fillSums2()
    {
        sums2 = new int[smMax + 1];

        // ищем сумму, в которой только одно уникальное произведение
        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)
                    {
                        if (mults2.Val(a * b) == 1)
                        {
                            ++sums2[sm];
                        }
                    }
                }
            }
        }
    }
Beispiel #2
0
    //-----------------------------------------------------------------------
    static private void fillSums()
    {
        sums = new int[nMax + nMax + 1];

        // Если произведение уникально, то сумма недопустима
        for (long sm = nMin + nMin; sm <= nMax + nMax; ++sm)
        {
            for (long a = nMin; a <= nMax && a <= sm - nMin; ++a)
            {
                long b = sm - a;
                if (b >= a && b <= nMax)
                {
                    if (mults.Val(a * b) == 1)
                    {
                        ++sums[sm];
                    }
                }
            }
            if (sums[sm] == 0)
            {
                smMax = sm;
            }
        }
    }