Очистка 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;
}
}
}