Очистка list от значений прошлых итераций цикла

Решаю задачу, в которой необходимо найти сумму максимального и минимального делителей первых пяти чисел больше 800000, есть list, который хранит все делители числа, проблема заключается в том, что при попытке очистить list от значений в конце итерации цикла, случается инвалидация итераторов, вопрос: как очищать list в конце итерации, чтобы это не приводило к вышеуказанной проблеме.

UPD.Забыл добавить некоторые детали условия, делители являются натуральными, кроме единицы и самого числа по условию, нужно найти сумму делителей, которые оканчиваются на 4 и вывести число, делителями, которого они являются и саму сумму делителей

Прилагаю свой код ниже:

int main()
{
    list<int>sum;
    for (int i = 800000; i < 800100; i++)
    {




        for (size_t del = 2; del <= i/2; del++)
        {
            if (i % del == 0)
            {
                sum.emplace_back(del);
            }
        }
        if ((*min_element(sum.begin(), sum.end()) + *max_element(sum.begin(), sum.end())) % 10 == 4)
        {
            cout << i << endl << *min_element(sum.begin(), sum.end()) + *max_element(sum.begin(), sum.end()) << endl;

        }


    }
}

Ответы (0 шт):