Best search algorithm to find condition within a range

Terry Reedy tjreedy at udel.edu
Tue Apr 7 20:55:01 CEST 2015


On 4/7/2015 1:44 PM, Ian Kelly wrote:

>>>> def to_base(number, base):
> ...     digits = []
> ...     while number > 0:
> ...         digits.append(number % base)
> ...         number //= base
> ...     return digits or [0]
> ...
>>>> to_base(2932903594368438384328325832983294832483258958495845849584958458435439543858588435856958650865490, 429496729)
> [27626525, 286159541, 134919277, 305018215, 329341598, 48181777,
> 79384857, 112868646, 221068759, 70871527, 416507001, 31]
> About 15 microseconds.

% and probably // call divmod internally and toss one of the results. 
Slightly faster (5.7 versus 6.1 microseconds on my machine) is

def to_base_dm(number, base):
     digits = []
     while number > 0:
         number, rem = divmod(number, base)
         digits.append(rem)
     return digits or [0]

-- 
Terry Jan Reedy




More information about the Python-list mailing list