codeineDreamingэта функция строится несложно.
Натуральные числа удобно вычеркивать, а потом доказать, что вычеркнули все, но ровно один раз.
Пусть

, вычеркнули

Требуется

, вычеркнули

и

По той же причине, вычеркнули все числа вида

Пусть

(а значит

)
Вопрос: какое число
удобно считать за

? То есть какое число удобно вычернуть следующим?
Я, наверное, немного не уловил ход ваших мыслей, но мне почему-то хотелось бы вычеркнуть

, а вместе с ней заодно все числа вида

.
Я сейчас объясню то, как я понял, а вы меня поправьте если что пожалуйста.
То есть мы удалим

и так далее.
Если дальше удалять, нам всяко придется отдельно смотреть числа, которые не являются квадратом какого-то другого числа, например

мы никак не вычеркнем, не принимая

за

. Аналогично придется обращаться к нечетным степеням двойки, тройки, потому что мы их не вычеркнули в прошлых ходах, так что, исходя из этого, я не очень понимаю, как тут поступить разумнее и что удобнее вычеркивать
Хотя я, по всей видимости, просто вас неправильно понял, исправьте меня пожалуйста