int greatestProperDivisor(int x) {
if (x <= 1) return 0;
for (int i = 2; i <=sqrt(x); i++) {
if (x % i == 0) {
if (i < x) return i;
if (x / i < x) return x / i;
}
}
return 0;
}
public:
int minOperations(vector<int>& nums) {
int n = nums.size();
int operations = 0;