Заведите множество ПОЛНЫХ квадратов. Это числа 1,4,9,16,...Только определите его программно, а не вручную.

Идея с удалением верна, но реализована неправильно. У вас получатся, что вы копируете следующий элемент, а не сдвигаете его. При этом все последующие числа остаются на месте.