fork download
  1. #include <stdio.h>
  2.  
  3. void square_root_recursive(int n, int low, int high)
  4. {
  5. if(low>high)
  6. {
  7. printf("NOT A PERFECT SQUARE NUMBER!\n");
  8. return;
  9. }
  10.  
  11. int mid = (low + high) / 2;
  12.  
  13. if(mid*mid == n)
  14. {
  15. printf("%d\n", mid);
  16. return;
  17. }
  18. else if(mid * mid > n)
  19. {
  20. square_root_recursive(n, low, mid - 1);
  21. }
  22. else
  23. {
  24. square_root_recursive(n, mid + 1, high);
  25. }
  26. }
  27.  
  28. void square_root(int n)
  29. {
  30. int low = 1;
  31. int high = n;
  32.  
  33. while(low<=high)
  34. {
  35. int mid = (low + high) / 2;
  36. if(mid*mid == n)
  37. {
  38. printf("%d\n", mid);
  39. return;
  40. }
  41. else if(mid*mid > n)
  42. {
  43. high = mid - 1;
  44. }
  45. else
  46. {
  47. low = mid + 1;
  48. }
  49. }
  50.  
  51. printf("NOT A PERFECT SQUARE NUMBER!\n");
  52. }
  53.  
  54.  
  55. int main()
  56. {
  57. square_root_recursive(120, 1, 120);
  58.  
  59. return 0;
  60. }
Success #stdin #stdout 0.01s 5328KB
stdin
Standard input is empty
stdout
NOT A PERFECT SQUARE NUMBER!