fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4.  
  5. static int nthRoot(int n, int m) {
  6. int lo = 1, hi = m;
  7.  
  8. while (lo <= hi) {
  9. int mid = (lo + hi) / 2;
  10.  
  11. long val = 1;
  12. for (int i = 0; i < n; i++) {
  13. val *= mid;
  14. if (val > m) break;
  15. }
  16.  
  17. if (val == m) return mid;
  18.  
  19. if (val < m) lo = mid + 1;
  20. else hi = mid - 1;
  21. }
  22.  
  23. return -1;
  24. }
  25.  
  26. public static void main(String[] args) {
  27. int n = 3;
  28. int m = 27;
  29.  
  30. int res = nthRoot(n, m);
  31. System.out.println(res);
  32. }
  33. }
  34.  
Success #stdin #stdout 0.08s 52580KB
stdin
Standard input is empty
stdout
3