483:最小好进制

This commit is contained in:
huangge1199 2021-10-18 16:30:11 +08:00
parent ca5d8b298a
commit cec7cdf42c

View File

@ -55,22 +55,19 @@ public class SmallestGoodBase {
class Solution { class Solution {
public String smallestGoodBase(String n) { public String smallestGoodBase(String n) {
long num = Long.parseLong(n); long num = Long.parseLong(n);
for (long i = 2; i < num; i++) { int mMax = (int) Math.floor(Math.log(num) / Math.log(2));
if (isTrue(num, i)) { for (int m = mMax; m > 1; m--) {
return String.valueOf(i); int k = (int) Math.pow(num, 1.0 / m);
long mul = 1, sum = 1;
for (int i = 0; i < m; i++) {
mul *= k;
sum += mul;
}
if (sum == num) {
return Integer.toString(k);
} }
} }
return n; return Long.toString(num - 1);
}
private boolean isTrue(long num, long i) {
do {
if (num % i != 1) {
return false;
}
num /= i;
} while (num != 1);
return true;
} }
} }
//leetcode submit region end(Prohibit modification and deletion) //leetcode submit region end(Prohibit modification and deletion)