483:最小好进制
This commit is contained in:
parent
ca5d8b298a
commit
cec7cdf42c
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user