fork download
  1. #include <iostream>
  2. using namespace std;
  3. bool isPerfectSquare(int num) {
  4. if (num < 2) return true;
  5.  
  6. long left = 1, right = num;
  7.  
  8. while (left <= right) {
  9. long mid = left + (right - left) / 2;
  10. long square = mid * mid;
  11.  
  12. if (square == num)
  13. return true;
  14. else if (square > num)
  15. right = mid - 1;
  16. else
  17. left = mid + 1;
  18. }
  19.  
  20. return false;
  21. }
  22.  
  23. int main() {
  24. int num = 16;
  25. if (isPerfectSquare(num))
  26. cout << "true\n";
  27. else
  28. cout << "false\n";
  29.  
  30. return 0;
  31. }
  32.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
true