Lucky numbers in Python

Cecil Westerhof Cecil at decebal.nl
Thu Apr 30 14:55:10 EDT 2015


Because I want the code to work with Python 3 also, the code is now:
    def lucky_numbers(n):
        """
        Lucky numbers from 1 up-to n
        http://en.wikipedia.org/wiki/Lucky_number
        """

        if n < 3:
            return [1]
        sieve = list(range(1, n + 1, 2))
        sieve_index = 1
        while True:
            sieve_len   = len(sieve)
            if (sieve_index + 1) > sieve_len:
                break
            skip_count  = sieve[sieve_index]
            if sieve_len < skip_count:
                break
            del sieve[skip_count - 1 : : skip_count]
            sieve_index += 1
        return sieve

It looks like the list in:
        sieve = list(range(1, n + 1, 2))

does not have much influence in Python 2. So I was thinking of leaving
the code like it is. Or is it better to check and do the list only
with Python 3?

-- 
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof



More information about the Python-list mailing list