Посчитаем сумму всех делителей чисел от одного до 100000, занесем в массив arr;
потом пройдемся по массиву от 1 до k и проверим
if (i == arr[arr[i]] && (!d[i] || !d[arr[i]]) && i != arr[i])
где d - массив bool, указывающий на посещенность этого числа, а последнее условие убирает повторяющиеся числа.
Хранить массив следует чуть больше, чем 10^5, или отсекать обращения к большим числам.