#include <iostream>
using namespace std;
bool isPerfectSquare(int num) {
if (num < 2) return true;
long left = 1, right = num;
while (left <= right) {
long mid = left + (right - left) / 2;
long square = mid * mid;
if (square == num)
return true;
else if (square > num)
right = mid - 1;
else
left = mid + 1;
}
return false;
}
int main() {
int num = 16;
if (isPerfectSquare(num))
cout << "true\n";
else
cout << "false\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpib29sIGlzUGVyZmVjdFNxdWFyZShpbnQgbnVtKSB7CiAgICBpZiAobnVtIDwgMikgcmV0dXJuIHRydWU7CgogICAgbG9uZyBsZWZ0ID0gMSwgcmlnaHQgPSBudW07CgogICAgd2hpbGUgKGxlZnQgPD0gcmlnaHQpIHsKICAgICAgICBsb25nIG1pZCA9IGxlZnQgKyAocmlnaHQgLSBsZWZ0KSAvIDI7CiAgICAgICAgbG9uZyBzcXVhcmUgPSBtaWQgKiBtaWQ7CgogICAgICAgIGlmIChzcXVhcmUgPT0gbnVtKQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBlbHNlIGlmIChzcXVhcmUgPiBudW0pCiAgICAgICAgICAgIHJpZ2h0ID0gbWlkIC0gMTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGxlZnQgPSBtaWQgKyAxOwogICAgfQoKICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbnVtID0gMTY7CiAgICBpZiAoaXNQZXJmZWN0U3F1YXJlKG51bSkpCiAgICAgICAgY291dCA8PCAidHJ1ZVxuIjsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJmYWxzZVxuIjsKCiAgICByZXR1cm4gMDsKfQo=