«число, которое начинается с 1 и оканчивается значением, при котором 1/x становится меньше значения 0.0023» — если тут подразумевается так же «x увеличивается на 1 с каждой итерацией» — логика верная, за исключением того, что по ТЗ надо остановиться, когда, 1/x становится МЕНЬШЕ значения 0.0023, а в коде остановка происходит, когда, 1/x становится РАВНЫМ значения 0.0023. Если поменять Y != 0.0023 на Y >= 0.0023 — работает, как запланировано.
Причин текущего поведения может быть две.
Первая: выражение 1/x при целом x никогда не принимает значение 0.0023. То есть, условие выхода из цикла не выполняется, и это нормально.
Вторая: равенство не выполняется из-за погрешности чисел с плавающей точкой. Например, 1/3 + 1/3 + 1/3 = 0.333 + 0.333 + 0.333 = 0.999 != 1. Это надо учитывать всегда при проверке чисел с плавающей запятой на точное равенство.