human
Can you provide a the Python program you requested given the following:
I found an interesting problem on https://leetcode.com/problems/smallest-good-base/:
For an integer n, we call k>=2 a good base of n, if all digits of n base k are 1.
Now given a string representing n, you should return the smallest good base of n in string format. 

Example 1:

Input: "13"
Output: "3"
Explanation: 13 base 3 is 111.


Example 2:

Input: "4681"
Output: "8"
Explanation: 4681 base 8 is 11111.


Example 3:

Input: "1000000000000000000"
Output: "999999999999999999"
Explanation: 1000000000000000000 base 999999999999999999 is 11.


Note:

The range of n is [3, 10^18].
The string representing n is always valid and will not have leading zeros.

I tried it in Python, but could not do it. Can you solve it?
assistant
#Here is the Python program you requested.

class Solution(object):
     def smallestGoodBase(self, n):
         """
         :type n: str
         :rtype: str
         """        
         num = int(n)
         thisLen = int(math.log(num,2)) + 1
         while thisLen > 2:
             # from equation [3], we havve
             thisBase = int(num ** (1.0/(thisLen - 1)))
             # from equation [2], we have
             if num * (thisBase - 1) == thisBase ** thisLen - 1:
                 return str(thisBase)
             thisLen -= 1
         return str(num - 1)