2
public boolean checkPowersOfThree(int n) {4
int maxPower = (int) (Math.log(n) / Math.log(3));6
// save all the power of 3 from 0 to maxPower7
// 3^0, 3^1, 3^2 .... 3^maxPower8
int[] threePower = new int[maxPower + 1];10
for (int i = 1; i <= maxPower; i++) {11
threePower[i] = threePower[i - 1] * 3;15
// if we subtract n with every power of 316
// at the end if n is zero, then it is sum of power 318
// subtract n with power of 3,19
// if n is graeter than power20
for (int i = maxPower; i >= 0; i--) {21
// n is greater/equal to power 322
if (n >= threePower[i]) {